4

ページが別の場所に移動すると、Javascript はどうなりますか? 私が読んでいる本は、「アンロード」イベントで物事をクリアするように指示しています。

しかし、ポイントは何ですか?ブラウザでページが移動すると、すべてが失われて解放されませんか?

ありがとう、

ショーン

4

3 に答える 3

1

通常、ブラウザーは、ページ ナビゲーション後にメモリをクリーンアップするのに適しています。ただし、ブラウザを混乱させ、ページ遷移間でメモリにハングアップさせるためにできることがあります。これは特に、DOM 要素にデータを格納している場合、または DOM とスクリプトの間に循環参照がある場合に当てはまります。

これは、数年前の古いブラウザではより大きな問題でした。現在のブラウザ リリースは、ページ遷移間のメモリ クリーンアップに関して優れています。

ページのアンロード中に何らかのクリーンアップを行うのは理にかなっているかもしれませんが、設計を変更して循環参照を排除することはさらに良いことです。DOM にデータを保存しないでください。

詳細については、こちらの記事をご覧ください。

FireFox での JavaScript リークに関するMDNの記事。

IE 固有の詳細が記載されたMicrosoft Knowledge Baseの記事を次に示します。

于 2013-02-04T18:56:18.120 に答える
1

これが役立つ唯一のケースは、DOM と JS エンジン (常にイベント ハンドラーではありませんが、最も一般的な方法です) の間で循環参照を行うイベント ハンドラーをクリアする場合であり、そのためにメモリ リークが発生します。ページをアンロードすると、他のすべてがガベージコレクションされます

この投稿を参照してくださいWeb ページをアンロードした後に Javascript メモリ リークが発生する

于 2013-02-04T18:53:56.493 に答える
-1

もちろん。しかし、アンロードすることでブラウザーのメモリをいくらか解放することができます (最近ではあまり役に立ちませんが、以前は役に立ちました)。または、アンロード時に何らかのアクションを実行できます (つまり、ユーザーに確認を求める、内容を保存するなど...)。

于 2013-02-04T18:51:06.500 に答える