1

タイトルにあるように、window.load 行があります。

$(window).load(function() { 
   //Some Code
});

したがって、すべてがロードされたら実行しますが、コンテンツがロードされていない場合は、コンテンツが完全にロードされていなくて//Some Codeも実行するよりも 7 秒以内に実行したいと考えています (おそらく大きな画像ファイル、または不足しているファイルが発生するなど) 。//Some Codeどうすればこのタスクを達成できますか?

4

2 に答える 2

2

遅延オブジェクトは一度しか解決できないため、解決策として使用できます。

var runCodeDeferred = $.Deferred(function(deferred){
    $(window).load(deferred.resolve);
    setTimeout(deferred.resolve,7000)
});

runCodeDeferred.done(function(){
    //Some Code
});

$.Callbacksオブジェクトでも同じことができます。

var callbacks = $.Callbacks("once");
$(window).load(callbacks.fire);
setTimeout(callbacks.fire,7000);
callbacks.add(function(){
    //Some Code
});

しかし、それは行うことと同じです:

var timer;
function someCode() {
    //Some Code
}
$(window).on("load.someCode",function(){
    clearTimeout(timer);
    someCode();
});
setTimeout(function(){
    $(window).off("load.someCode");
    someCode();
},7000);
于 2013-04-12T14:50:29.970 に答える