2013-07-31 7 views
5

サーバへのリクエストを最小限に抑えて読み込み時間を短縮するために、角度、jquery- ui、... これは一般的なやり方ですが、ベンダーのJSファイルを同じJSファイルに含めないWebサイトがよく見られます。私は多くのサイトが、他のページが使用していたかもしれないJSファイルのキャッシュバージョンを再利用するためにCDNを使用することを知っています。 Howewer、時には、彼らは、例えば、同じサーバ上で提供されている別のベンダーJSファイルは、GitHubの上にある:すべてのJavaScriptファイル(ベンダーを含む)を連結するには短所がありますか

Github

Githubのがあります:Modernizr、jQueryのが含まれてい

  • Frameworks.jsは、
  • github -... Github自体のJSを含むjs。

これを行う特別な理由はありますか? JSファイルをすべて連結して表示される可能性のある問題ですか?

答えて

3

主な理由は、http要求の数を最小限に抑えることです。より大きいプロジェクトでは、MV *のようなパターンを使用している場合は、外部の.jsファイル内の各モジュールを抽象化することができます。これは、例えば、多くのファイルが30〜40になる可能性があります。その場合は、連結して単一のファイルにすることができます。

3-4 jsファイルを持つ小規模なプロジェクトでは、連結せずにそのまま使用します。私はrequirejsを使ってモジュールをAMDとして定義し、各モジュールを外部ファイルに持っています。次に、requirejsビルドスクリプトを使用して、依存関係と連結されたデプロイメントファイルを管理します。賢明な、違いを確認するつもりはない

-1

パフォーマンスこのプロセスを自動化する

良いツール。あなたがすべてのフレームワーク用に別々のファイルを持っていることに悩まされたら、あなたはそれをやることができると思います。さもなければ、ただ一つのファイルを埋めるつもりですし、後でフレームワークを更新しようとするときに潜在的に問題があります。

2

あなたのアプリケーションによって異なります。仮想的に言えば、それぞれ0.5MBの20個のjsファイルがあるとします。そのうち1ページ目には2(1MB)しか必要ありません。それらを別々に保ち、他のものを組み合わせたいと思うかもしれません。最初のページで他のものを遅延モードで読み込みます。したがって、ファイルを結合することは、すべてを結合することを理解するときには効果的です。原則として、ファイルがほとんどない場合、実際には大きな違いはありません。

あなたがJavaScriptファイルを結合する前に考えなければならない事柄の一部、

あなたが一緒に100個のファイルを結合。あなたは99件のリクエストを削減しています。しかし、あなたは次のことも行っています:
*その単一ファイルをダウンロードするのにかかる時間が長くなります(重要なページの読み込みをブロックしている可能性があります)
*追加JSコードの解析に費やされた時間この時点で要求されていない場合でも、サーバーから を取得しました。javascript エンジンが高速かつ高速になっていますが、JavaScriptコードの解析にはかなりの時間がかかっています。

ので、短期的に答えはある - 「それは常にトレードオフのゲームで、よくあなたのコードを知ることができます」:)

http://tomdale.net/2012/01/amd-is-not-the-answer/は、同様のラインで興味深いの読み取りです。