2012-09-18 24 views
2

我是從外部頁面的內容AJAXing。大多數情況下,加載時間不到一秒鐘,但是如果說加載時間超過3秒,是否可以淡入div(讓我們說一個預加載div)?所以像這樣...Jquery確定負載是否需要比設定的時間更長的負載

$targetPoint.load($dataImportURL + " " +$rawCollectionPoint,function(){ 
    if (($(this).load >= 3)) 
    { 
     alert ("Its taken more than 3 seconds to load"); 
    }      
}); 
+0

搜索AJAX +超時:) 在這裏你去: HTTP ://stackoverflow.com/questions/3543683/jquery-ajax-timeout-setting – TimTastic

+1

我不認爲他想殺死請求。我想他希望通知用戶該請求比預期時間要長。 – BZink

+0

哦,我的壞。然後忽略我的鏈接! :) – TimTastic

回答

6

看看JavaScript setTimeout函數。

當你發送了你的Ajax調用...

var timeout = setTimeout(function(){ 
    alert ("Its taken more than 3 seconds to load"); 
}, 3000); 

而當Ajax調用完成取消超時觸發。

clearTimeout(timeout); 

編輯:您可能需要使用jQuery的從該.ajax()功能,使您可以充分利用beforeSend的和成功的回調

事情是這樣的......

var timeout; 
$.ajax({ 
    url: $dataImportURL + " " +$rawCollectionPoint 
    beforeSend: function(){ 
     timeout = setTimeout(function(){ 
     alert ("Its taken more than 3 seconds to load"); 
    }, 3000); 
    } 
    success: function(data){ 
     clearTimeout(timeout); 
     $targetPoint.html(data); 
    } 

}); 
+0

但是隻要加載函數完成,它就會運行該函數。我需要一些檢查加載進度的東西。 –

+0

啊剛剛得到你的編輯:)看起來不錯我會試試這個。非常感謝您的幫助:D –

+0

如果這對您有用,請選擇它作爲答案。 – BZink