2016-07-11 4 views
4

特定のイベント(ユーザー対話、setTimeout)に基づいて、JSONをロードし、JSONの結果でバンチをロードするスクリプトがあります画像のまた、ページとのユーザーのやりとりに基づいて、いくつかの画像をプリロードします。時々、ページがしばらく開いていると、JSONから読み込まれた画像が読み込みに時間がかかって「スローダウン」し始めます(ページを更新するとOKです)。そこで、現在読み込んでいる画像を中止する方法を探し始め、 "window.stop()"を見つけました。私は仕様書のMDN amdの説明を読んで、これが私が探しているものかどうかを理解できません。window.stop()は現在イメージのロードを停止しますが、新しいイメージをロードします

MDN has

stop()メソッドは、 ブラウザで停止ボタンをクリックするとまったく同じです。スクリプトがロードされる順序のために、 の読み込みでは、 stop()メソッドはドキュメントを停止することはできませんが、大きいイメージ、新しいウィンドウ、ローディングが遅延されるその他のオブジェクトの読み込みを停止します。 。

The spec:ウィンドウオブジェクトに

stop()メソッドべき、そこ閲覧コンテキストをナビゲートするために既存の 試みであり、その試みが 現在アンロード文書アルゴリズムを実行していない場合、それをキャンセルする ナビゲーション;呼び出されたWindowオブジェクトのブラウジング コンテキストのアクティブなドキュメントを中止する必要があります。いずれかのタスクが彼らのためにキューに入れられ捨て、この 文書のコンテキストでフェッチアルゴリズムのすべてのインスタンスをキャンセル

abort a document

を持っている...、およびネットワークから受信した任意の さらにデータを破棄それらのために...

これは、window.stop()を使用した後、それ以上の画像をロードできないということですか?私はいくつかのテストを行いました.Firefox、Chrome、Safariではこれが動作するようです(window.stopの後にイメージが読み込まれます)が、これは仕様に反しているようです。

window.stop(); 
 
document.getElementById("c").innerHTML = "<img src='http://a5.mzstatic.com/us/r30/Purple5/v4/5a/2e/e9/5a2ee9b3-8f0e-4f8b-4043-dd3e3ea29766/icon128-2x.png'/>";
<div id="c"></div>

私はスペックを誤読し、それがコードのこの種を使用しても安全ですか、私は別の方法でそれを行うようにしてくださいだろうか?

+0

私たちはどのように多くの画像を話して、ファイルサイズの種類をしていますか? – charlietfl

+0

約80枚の画像をまとめて(JSON)、プレロードを10までグループにまとめています(ユーザーインタラクションでJSON情報にも関連しています)。 5〜8Kbです。それをスピードアップするために、10のサブドメイン(同じサーバー、同じフォルダー、イメージの場所からサブドメイン "名前"を生成するので、キャッシュする)を使用します。最初にリフレッシュ(または最初の数回)した後に初めて問題が発生することはありませんが、イメージをロードする前にしばらく時間がかかります – jvilhena

答えて

-1

あなたがwindow.stop();を持っているスクリプトがすでにロードされているので、それが終わりを通過しますので、

return window.stop(); 

を行う必要があります。

あなたはその後、別のスクリプトを持っている場合は、それが停止されます、例を見て:

<div id="c"></div> 
 
<script>window.stop(); </script> 
 
<script>document.getElementById("c").innerHTML = "<img src='http://a5.mzstatic.com/us/r30/Purple5/v4/5a/2e/e9/5a2ee9b3-8f0e-4f8b-4043-dd3e3ea29766/icon128-2x.png'/>";</script>

関連する問題