2011-03-24 18 views
1

他のファイルがサイトにロードされ続けると、javascriptやcssファイルをアンロードしないようにするかどうかを知りたいです。まあ私はJavaScriptを解除する必要があるかどうか、私は新しいページ呼び出しでCSSのリソースをする必要がありますので、私はアヤックスとFacebookのような機能を作成しています。javascriptスクリプトをアンロードする必要がありますか?

もう少し説明: ok facebook.comに行くと、ページがバックグラウンドでajaxで読み込まれます。任意のページ/プロファイル/セクションをクリックすると、必要なCSS/javascriptがロードされますが、必要なjavascriptをアンロードするかどうかはわかりません。だから私は以前に読み込まれたjavascriptを残すべきか、削除しなければならないということは、難しい部分ではなく、トラックを保持することが大きなサイトのためには少し複雑かもしれないということです。

賛否両論?

+0

あなたがしようとしていることについてもう少し詳細を投稿できますか?私はあなたの質問をよく理解していません。 – UnkwnTech

+0

"unload js and css files"とはどういう意味ですか? – Andrey

+0

申し訳ありませんが、さらに説明が追加されました。 – Basit

答えて

1

「アンロード」できるのは、ロードされたスクリプトによって作成されたスクリプトオブジェクトの設定を解除することだけです。

だからスクリプトがある場合:

var awesome = { 

    init : function() 
    { 
     /** init stuff **/ 
    }, 

    do_stuff : function() 
    { 
     /** do awesome stuff **/   
    } 

} 

あなたが技術的には同じような何かを行うことによって、それを「アンロード」できます

awesome = null; 

しかし、あなたはロードされたスクリプトでかなり整頓する必要があるだろう。まだイベントハンドラがdomのいくつかの要素に接続されているという潜在的な問題があります。

+0

これはイベントハンドラを心配していません。なぜなら、HTMLはアンロードファイルで変更されるからです。ライブイベントでなければ、すべてのイベントを処理すると仮定しています。 – Basit

+0

@Basit。はい、おそらくテストでは分かります。実際には、スクリプトをロードしたままにし、どのスクリプトがロードされているかの記録を保持し、必要に応じてオンデマンドでロードするだけです。 – Ben

+0

JQueryを使用してDOMから要素を削除すると、イベントハンドラも削除され、必要なクリーンアップが実行されます。 .innerHTMLのようなもので暗黙的に削除すると、リークを作成することができます。 –

0

最初にスクリプトをロードする必要があるかどうかを判断するロジックを配置する必要があります。特定のページ/ビューに必要でない場合は、ロードしないでください。

私が考えることができる「アンロード」する唯一の方法は、それを使わずにページをリロードすることです。これは恐ろしいアイデアのようです。

関連する問題