2009-10-12 42 views
1

在jQuery.ajax中,我們有設置超時(以毫秒爲單位)的祝福,以及用於處理超時的錯誤回調。使用JavaScript/jQuery和AJAX的假超時觸發器

但是,有些人只是在慢速連接,有一點耐心。我想要做的只是顯示一條消息,說明「這比平時花費更多時間」。

在jQuery超時爭論不會滿足這一點,和setTimeout()做完全相同的事情。如何通過簡單的時間檢查來實現?

回答

0

好的,這很簡單。

我所需要做的就是建立一個獨立的Timout,裏面有一個函數來顯示我需要的任何消息。

您仍然可以在超長時間內保持超時/錯誤回調。

var timeout = true; 

timeout = setTimeout(function() { 
    if (timeout) { 
     $("#zendesk-dropbox-error").html("Contacting the Helpdesk is taking longer than usual, try submitting manually?"); 
    } 
}, 9000); 


// Call for a JSON return from the PHP script 
$.ajax({ type: 'GET', url: http://www.example.com, dataType: 'json', cache: false, data: ({ a: 'b' }), timeout: 60000, 
    success: function(zendesk){ 
     timeout = false; 
     // Code 
    },error: function(objAJAXRequest, strError) { 
     // Code 
    } 
}); 
+0

這僅適用於一個Ajax請求而不是智能手機,其中一些要求是緩慢的,有些是快...我想你想比這更準確.. – jantimon 2009-10-13 06:49:24

+0

這很好,因爲它贏得了」無法用於智能手機 - 它是智能手機無法處理的更大型應用程序的一部分。這是一個孤立的,模塊化的AJAX請求,因此將是唯一運行的。 – jakeisonline 2009-10-13 07:32:37