1

バックグラウンド スレッド (Web ワーカー) がサーバーから大量の画像を取得し、同期的にファイル システムに書き込みます。同時に、ユーザーはすでにファイル システムに書き込まれている画像をスクロールする必要があります。したがって、スクロール イベントが発生するたびに、ファイルがファイル システムから非同期的に読み取られ、キャンバスに表示されます。ユーザーが一度に複数の画像をスクロールすると、このプロセスにより同時読み取りと書き込みが発生し、ブラウザがハングアップして最終的にクラッシュします。ブラウザをハングさせずにこれを達成するにはどうすればよいですか?

4

1 に答える 1

0

注意: これは何が起こっているのかについての勝手な推測であり、コードが実際に何をしているのかを知らずに 100% 確信することはできません。

おそらく、あなたのアプローチは大量の JS ヒープ メモリを必要とするでしょう (たとえば、既に読み取られたイメージをキャッシュすることはなく、以前のデータを破棄してそれらを再読み取りします)。メモリー。

Chrome Developer Tools の ( Ctrl+ Shift+ I)Profilesパネルを使用して、タブがクラッシュする前にいくつかのヒープ スナップショットを作成することをお勧めします。次に、それらを比較して (下部のステータス バーの右の [選択] をクリックし、[スナップショット 1 と 2 の間に割り当てられたオブジェクト] を選択)、この仮説が正しいかどうかを確認します。

于 2012-03-03T09:31:51.253 に答える