2

外部ページのコンテンツで AJAX を使用しています。ほとんどの場合、読み込みには 1 秒もかかりませんが、読み込みに 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);

編集:beforeSendおよびsuccessコールバックを利用できるように、jQueryの.ajax()関数を使用する必要がある場合があります

このようなもの...

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 に答える