我試圖使用jQuery做一個稍微複雜的頁面刷新。使用元刷新,如果頁面加載失敗一次,則不會再次加載。我正在嘗試製作一些會反覆嘗試加載的內容 - 如果它未能加載一次,它會在下一次再次嘗試,以便如果最後一次加載成功,我會看到新版本的頁面,無論是否存在是干預的錯誤。如何解決我的JavaScript頁面刷新
我目前的代碼是:
<script language="JavaScript" type="text/javascript" src="/include/jquery.js">
</script>
<script language="JavaScript">
var delay=5*1000;
function load(){
setTimeout(load, delay);
jQuery("#content").load("calendar_internal.cgi?days=40", function(){
jQuery("#preload").hide("slow");
});
delay = 15*60*1000;
}
jQuery("#content").load("calendar_internal.cgi?days=40", load);
</script>
據我所知,這是作爲一個空操作運行。它不刷新。
我怎樣才能得到,因此刷新,但一個壞的刷新並不意味着我必須重新加載,如果我想看到的網頁,在這一切至少在基層工作?
- 編輯 -
我有什麼,現在顯然是工作(後光測試):
<script language="JavaScript">
var placeholder = jQuery('<div></div>');
function load(){
setTimeout(load, 15*60*1000);
placeholder.load("logistic_ajax.cgi", function(){
if (placeholder.html())
jQuery('#content').html(placeholder.html());
})
}
load();
</script>
你爲什麼調用setTimeout的負載功能的加載功能的第一線? – Abbas 2012-01-02 21:14:09
爲了穩定。我們的想法是,首先設置下一次運行,然後嘗試網絡加載,以便在網絡加載失敗的情況下,丟失的嘗試次數不會超過一次。 – JonathanHayward 2012-01-04 00:05:03
也許我沒有看到這裏的邏輯,但這不是一個無限的遞歸調用?加載函數中的第一行調用setTimeout,它調用加載函數等等。 – Abbas 2012-01-04 00:10:38