2014-02-19 39 views
1

我在這裏已經看到了幾個類似的問題,但沒有一個與我想要的實際上有一個答案接近。在ColdFusion中加載查詢時加載gif

我有一個CF頁面。生成大部分頁面的查詢有潛力,這取決於用戶,需要很長時間,然後我們暫時盯着一個空白頁面,認爲它沒有響應。

基本上,我的任務是在頁面上加載一個gif,直到它準備好,以便用戶不會認爲它崩潰。

  1. 我也試過CFFLUSH方法,並且除了這個事實,它並沒有真正按預期(我們使用IE9和IIS,顯然還有一些設置不互相打很好),它一旦加載主頁面,屏幕上會顯示「加載」文本/圖像。我希望它在頁面加載後消失。

  2. 我不能使用jQuery

  3. 我真的不能使用原生的Ajax了比我可以使用CFAJAX電話訪問等

  4. 這裏的其他開發者使用CFWINDOW建議一樣他在別處檢查會話是否超時等,但我還沒有弄清楚。如果有人能指導我,我會對這些人開放。

想法?

+0


<HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <div id="body" style="width:100px">loading statement or loading images</div> <script> function load_url(url) { var obj; if (window.XMLHttpRequest) obj = new XMLHttpRequest(); else if (window.ActiveXObject) obj = new ActiveXObject("Microsoft.XMLHTTP"); if (obj !== null) { obj.onreadystatechange = function() { if (obj.readyState === 4) { var response = obj.responseText; alert(response); document.getElementById('body').innerHTML = response; } }; obj.open("GET", url, true); obj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); obj.send(); } } load_url('/loadActualdata.cfm?timestamp=' + new Date().getTime().toString()); </script> </BODY> </HTML> 

HTML假設你可以解決你的問題cfflush,你可以把GIF在一個div,沖洗,然後替換div的內容與您的網頁處理時使用JavaScript。 –

+2

爲什麼你不能使用jQuery,爲什麼你僅限於使用'CFAJAX'來進行AJAX調用?你負責解決問題,同時拿走解決問題的所有適當工具。另外,不要聽其他開發者。在任何情況下都不要使用'CFWINDOW'。而且,在任何情況下都不要使用'CFAJAX'。 –

+0

基本上,因爲他們不想添加到運動部件堆棧。無論如何,其他人實際上有一個完美的想法!我會立即添加它作爲答案。 –

回答

1

cfdiv。

另一位開發人員因爲說他知道他在某個地方曾經做過這件事,所以他絞盡腦汁。最後,他找到了它,這是一個cfdiv。

基本上,你採取「違規」(即:持久)的代碼,並將其剪切到另一個文件。然後,您可以添加一個<cfajaximport>的頭部,然後在地方的代碼是你把:

<cfdiv id="divID" name="divName" bind="url:pageWithCode.cfm?(anyparameters)" bindonload="true" /> 

,一定要參考的參數文件,如「URL」。這一切都完美無缺!

謝謝大家的幫助!

+4

'cfdiv'(或ColdFusion中的任何其他UI功能)永遠不是一個可行的答案。爲了任何東西。 –

+0

你爲什麼這麼說?這似乎正是我一直試圖完成的兩天。 –

+4

歷史上,ColdFusion的UI元素在功能上受到限制,並且通常具有半分類的實現。處理這個問題的最好方法是使用jQuery或任何其他JS庫,而不使用'cfajax'。 jQuery是開源的,由成千上萬的開發人員使用和測試。爲什麼你會選擇類似'cfajax'的東西 - 這是由甚至沒有JS開發人員編寫,並被少數人使用的人所寫的,超出了我的想象。 –

0

也許我錯過了一些東西,但答案對我來說似乎很簡單。只需執行查詢和顯示結果的頁面就可以吐出頁面。執行查詢的頁面也可以包含實際的格式。在一個簡單的例子下。在loadActualdata.cfm

<table style="width:100%;border:1px solid red" border="0" cellpadding="0" cellspacing=""0"> 
<tr> 
    <td><b>test</b></td> 
</tr> 
</table> 
+0

好的,所以我使用這種方法,它只會導致問題! 當數據表最終返回時,它非常分散。此外,該網頁似乎以某種方式緩存自己。它拒絕承認頁面上的代碼更改,有時甚至在瀏覽器重新啓動之後!它不斷讀取錯誤的變量,從而構建錯誤的查詢。 –

+0

(oops) 我錯過了什麼? –

+0

我更新了我的答案。緩存問題通過向url添加時間戳來解決。我不確定爲什麼你遇到格式問題,很可能在請求的頁面上有格式錯誤。嘗試在答案中的簡單示例,然後添加您的HTML,直到您發現問題。 – Nebu