2012-08-05 120 views
1

在jQuery Mobile中,如果用戶點擊一個按鈕,會出現一個加載圖標,然後通過Ajax加載新的網頁。jQuery Mobile Ajax導航超時

但是,在我的情況下服務器可能沒有響應。有沒有辦法讓超時(例如10秒)的ajax導航功能? (如果時間限制超過,請停止嘗試導航並顯示錯誤消息)

+0

已經問 http://stackoverflow.com/questions/5225597/set-timeout-for-ajax-jquery – zizoujab 2012-08-05 13:53:49

+0

我不明白他們的正確回答,我應該在哪裏放置該代碼?以及如何顯示錯誤信息?你能給個例子嗎? – 2012-08-05 14:01:49

+0

如果你已經寫了一些代碼發佈它,所以我們可以看到它有什麼問題。因爲在jQuery和jQuery手機中,有很多方法可以進行ajax調用。 – zizoujab 2012-08-05 14:13:02

回答

1

要設置超時時間,我認爲您不應該以靜態方式執行此操作(使用「數據轉換」) 您可以讓偵聽器鏈接('onclick')和監聽器內的ajax調用來加載你的頁面。使用$.mobile.changePage()來做到這一點。

$.mobile.changePage()函數用於jQuery Mobile中的很多地方。例如,單擊鏈接時,其href屬性被標準化,然後$.mobile.changePage()處理其餘的。

所以你的代碼可能看起來是這樣的:

$('#link_id').click(function() { 
    $.ajax({ 
    url: "page_served_from_server", 
     error: function(jqXHR, strError){ 
     if(strError == 'timeout') 
     { 
      //do something. Try again perhaps? 
     } 
    }, 
    success: function(){ 
     //charge your page : 
     // $.mobile.changePage('yourPageAdress',"turn",false,true); 
    }, 
    // here you can specify your timeout in milliseconds 
    timeout:3000 
    }); 
});