2

私はこのようなサイトに取り組んでいます: http://www.nike.com/jumpman23/aj2012/ここでは、たくさんの画像をプリロードしています。プリロード中はブラウザーをロックしないでください。そのため、setTimeout 関数を使用して、一度に 1 つの画像のみをロードしています。FF/Chrome/Safari などではすべて正常に動作しますが、IE では問題が発生しました。

約 400 枚の画像をロードしてからエラー関数に入る場合もあれば、最初の 6 枚の画像をプリロードするだけの場合もあります。これは完全にランダムに見えます。問題を説明するのは難しいので、コードの重要な部分をここに置きます: http://sidneywidmer.ch/preloader/ (最初にコンソールを開くように確認してください)

loadOrder 変数のようなものは無視できます:)

また、IE に異なる間隔時間を設定しようとしたり、エラー時にダウンロードを一時停止しようとしたりしましたが、何も機能していないようです...

この問題を解決する方法を知っている人はいますか?

更新: いくつかの調査の結果、メモリ リークか何かがあると断言できます。IE では、RAM の使用量が 1.4 GB から 3 GB 以上に増え、イメージの読み込みが停止します...

4

2 に答える 2

0

怠惰な画像の読み込みを使用してみてください。jQueryへのこのプラグインをご覧くださいhttp://www.appelsiini.net/projects/lazyload

于 2012-04-05T10:00:20.367 に答える
0

やっと自分で問題を解決できました... 問題は、画像が DOM にプリロードされる間、Internet Explorer (およびおそらく他のブラウザーも) が大量の RAM を消費することでした。実際のサイズ (例: 10kb) は重要ではありません。最も重要なのは画像の解像度です。したがって、解像度 400 x 200、サイズ 20kb の 1000 個の画像を簡単にプリロードできますが、解像度 1024 x 768、ファイル サイズ 10kb の 1000 個の画像をプリロードすることはまったくできません。

なぜこれが当てはまるのか正確にはわかりません。誰かがこの動作をより詳細に説明できるかもしれません。

于 2012-04-09T09:43:43.283 に答える