2

我在来自外部页面的内容中进行 AJAXing。大多数时候加载时间不到一秒,但是如果说加载时间超过 3 秒,有没有办法可以淡入一个 div(比如说一个预加载 div)?所以像这样的事情......

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

1 回答 1

6

看看 JavaScript 的 setTimeout 函数。

当你发送你的ajax调用时......

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

并且当 ajax 调用完成时取消超时触发器。

clearTimeout(timeout);

编辑:您可能必须使用 jQuery 中的.ajax()函数,以便您可以利用 beforeSend 和 success 回调

像这样的东西...

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);
   }

});
于 2012-09-18T20:34:14.177 回答