スクリプトリソースを解放するために、通常、復帰後にいくつかの追加処理が実行されます。
script = document.createElement('script' );
script.src =
'http://example.com/cgi-bin/jsonp?q=人生の意味とは何ですか?'; 🎜>script .type = 'text/javascript';
script.charset = 'utf-8';
// タグが head に追加されると、自動的にロードされて実行されます。
var head = document.getElementsByTagName('head')[0];
head.appendChild(script)
実際、多くの人気のある JS ライブラリはこのメソッドを使用してスクリプトを作成しますタグにIDを割り当てた後、スクリプト(YUI get()など)をロードし、ロード後にタグをクリアしてコールバックします。問題は、これらのスクリプト タグをクリアすると、ブラウザは単にタグ ノードを削除するだけであることです。
var script = document.getElementById('JSONP ');
script.parentNode.removeChild(script);
ブラウザはこのタグ ノードを削除するとき、ノード内の JavaScript リソースに対してガベージ コレクションを実行しません。ノード内の JavaScript リソースが削除されるだけでは不十分です。スクリプト ラベル ノードのコンテンツを手動でクリアする必要があります。
// 古いスクリプト タグを削除します。
var script;
while (script = document.getElementById() 'JSONP')) {
script.parentNode.removeChild(script);
// ブラウザーは、これらのプロパティによって指定されたオブジェクトをリサイクルしません。
//メモリ リークを避けるために、オブジェクトを手動で削除します。 🎜>for (スクリプト内の var prop) {
スクリプトを削除 [prop]
}
}
;