2017-01-02 6 views
0

ドキュメントが完全に読み込まれると、javascriptはimgソースや背景イメージなどの変更を開始します。 これらの変更は、JSで事前ロードするか、または例のためにsrc属性を直接変更することによって、さまざまな方法で行われます。ただし、これらの変更については、新しいファイルをロードする必要があります。 これらの変更は無作為に起こります。無作為なソースからランダムな要素まで、要素やソースのリストを提供することはできません。読み込み中のjQuery/javascriptのチェック

私のjavascript(jQuery)は、何かがまだロードされているかどうか、またはすべてが完全にロードされているかどうかをチェックする必要があります。

つまり、ネットワークトラフィックが発生しているかどうかを確認する方法が必要です。

理想的には、ファイルをロードする要求があるたびに変数loadingをtrueに設定する方法はありませんでした。読み込みプロセスが完了するとその変数をfalseに設定して何かを使うことができますwhile (loading==true) {loopscript()}のように読み込み中にスクリプトをループさせます。

これを行うためのjQueryの方法はありますか?

答えて

0

JQueryのロードイベントを使用できますが、setIntervalコールがヘッドに埋め込まれていることを確認する必要があります。以下の例は、画像をロードして5000msかかるページをロードすることです。 1000msごとにコンソールに出力されます。

<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
 
    <script> 
 
    var intervalID = setInterval(function() { 
 
    console.log("loading"); 
 
    }, 1000); 
 
    </script> 
 
</head> 
 
<body> 
 
    <script> 
 
    jQuery(window).load(function() { 
 
    clearInterval(intervalID); 
 
    }); 
 
    </script> 
 
    <img src="http://deelay.me/5000/http://deelay.me/img/5000ms.gif"> 
 
</body>

+0

ハァッを完了したときに、他のどんなイベントがトリガされる可能性があります必要があるでしょうか?これを使用してOPの要件を満たすデモを提供してください – charlietfl

+0

これまではやってみましたが、$(window).load(...)を使用しても問題は解決しないようです。何かがロードを開始するたびにイベントがトリガされることはありません。これは必要なものに必要です。代わりに、ウィンドウが読み込まれたときにだけトリガされるように見えます。 – eds1999

+0

@charlietfl私の方法を最初に試してみました。私はテストしましたが、うまくいきませんでした。申し訳ありません。 – volatilevar

0

あなたは$.Deferredを使用して、各アクションの約束を作成し、アレイへのすべての約束をプッシュすることができます。

次に、すべての約束が解決された後に、ローディング変数を更新するために$.when()を使用してください。

個々約束はイメージのため、負荷のイベントハンドラ内で解決されるか、そのアクションが

関連する問題