2009-05-14 7 views
1

dillemaはこのようなものです:私は、マスターページ上のすべてのスクリプトブロックに合うようにしようと挿入するスクリプトブロック

は(いくつかのフレームワークでページを含む)に、すべてのページは、ものも含め、すべてのスクリプトのコピーを(取得します彼らは必要ではありません)、これらはすばやくページサイズを増やし、膨らませます。

必要に応じてスクリプトブロックを挿入/挿入すると、javascriptがプロジェクト全体に広がります。

私は正しいバランスを保つべきところと苦労しています。誰でも?

答えて

0

私たちはサイト全体のJS(実際には約17個のファイルが2つのファイルに統合され、すべてのコード用に1つ、mootoolsやclientcideなどのライブラリコード用に1つ)を縮小、マージ、gzipします。これにより、スクリプトのダウンロードに要する時間が大幅に短縮されます。圧縮とマージが行われ、サーバー上にキャッシュされ、開発が遅くならないようにします。シドニーのおいしさのための私達の合計JSは、一度すべてが上記のように圧縮された約50Kです。

また、すべてのバージョン番号を持つファイルの有効期限が長く設定されているため、バージョン番号を変更すると(サイトワイドのものを簡単に作成できます)、ユーザーは新鮮なバージョンと一度ダウンロードされた彼らはブラウザによってキャッシュされます。

さらにJSをページのフッタに配置するように変更しました。これにより、JSをダウンロードしている間にすべてがレンダリングされ、表示されるようになります。

個々のページの中には、必要なもの(検索フォームなど)が1つしかないものがあります(上記のものと同じ扱いになります)。ただし、必要なファイルはすべてマージ、縮小、gzipされます。私たちはキャッシングを利用することができます。したがって、この例では、3つのJSファイル、サイトワイド、ライブラリ、カスタムコードをそのページにダウンロードできます。

1

すべてのJSファイルを含むことは大きな問題ではありません(ローディング時にコードの実行が遅い場合を除きます)。ページを膨らませることはありません。ロードされるとブラウザはそれらをキャッシュします次のページにロード時間が0になります。

もちろん、ページ自体にJSファイルのコンテンツを入れない限り、もちろん! :-)

1

あなたのページサイズを大きくすることが懸念される場合は、Javascriptを必要なページで参照される別のjsファイル(または複数のファイル)に移動する必要があります。これは初めての訪問者にもっと多くのHTTPリクエストを送ることを意味しますが、ブラウザ上でJavascriptをキャッシュできるので、サイトのすべてのページに対して再度取得する必要はありません。

0

スクリプトを小さくすると大きな問題ではなく、jqueryと同じ大きさのものが、縮小後約50kです。

1

できるだけ多くのJavaScriptを外部の.jsファイルに抽出します。最も一般的に使用されるライブラリをマスターページに含めますが、個々のページにそのページに固有のJavaScriptが必要な場合は、そのページにのみロードすることをお勧めします。どのファイルがどのページによってロードされているかのクロスレファレンスを維持してください。また、多くのページで参照されているライブラリがある場合は、それをマスターページに移動してください。

YUI Compressorなどの外部JavaScriptライブラリや、What do you use to minimize and compress JavaScript libraries?に記載されているその他のツールを使用して、すべてのJavaScriptライブラリを圧縮/縮小するようにしてください。