2010-05-06 85 views
3

我玩弄.load()和.ajax(),但我沒有結束。這是我需要的: Everey分鐘功能應檢查它是否可以加載某個頁面。 如果連接成功,我希望刷新頁面,如果沒有,則不會發生任何事情,腳本將在稍後重試。如何通過jQuery刷新頁面並確保存在連接?

我正在使用jQueryTimers插件。這是我的代碼到目前爲止:

//reload trigger 
$(document).everyTime('60s', 'pagerefresh', reloadPage, 0, true); 

//refresh function 
function reloadPage() { 
    $.ajax({ 
     url:'index-1.php', 
     type:'HEAD', 
     success: location.reload(true) 
     }) 
} 

我不知道如何告訴jQ我想要什麼。任何暗示讚賞。

回答

9

通過寫success: location.reload(),你立即調用reloadsuccess參數設置爲任何reload回報率(這是undefined

您需要使用調用reloadsuccess回調一個匿名函數,像這樣:

success: function() { location.reload(true); } 
+0

感謝您的幫助!這幫助我,當我重新連接到網絡時,頁面立即被加載。 – Steve 2010-05-10 20:12:24

+0

完成。我想跟進我的問題,所以我發佈了自己的答案。或者我怎樣才能改善我的問題在這裏stackoverflow? – Steve 2010-05-10 20:25:28

+0

您可以編輯您的問題或要求一個新的問題。 – SLaks 2010-05-10 20:41:11

0

感謝SLaks,jQuery現在重新嘗試重新加載。但是,如果我將網線從PC上拔下,它仍會清除屏幕並且不會觸發錯誤。這裏是我的新嘗試:

$.ajax({ 
     url:'index.php', 
     type:'HEAD', 
     success: function() { location.reload(true); }, 
     error: function() {$('DIV').append('<p>ERROR</p>');} 
     }) 
+1

在URL中添加一個隨機數以避免緩存('url:'index.php'+ Math.random()') – SLaks 2010-05-10 20:24:23

+0

另外,安裝[Firebug](http://getfirebug.com),將'location.reload ''console.log(arguments)',並檢查在控制檯選項卡上發生了什麼,當你拔下連接。 – SLaks 2010-05-10 20:26:02

+0

很酷,謝謝,我喜歡這個方法..順便說一句:我用歌劇蜻蜓;) – Steve 2010-06-24 15:06:27