大規模なWebサイトで、requireJSは実際にどれくらい高速ですか?
非同期読み込みを使用する大規模なWebサイトと使用しないWebサイトの速度についてテストを行った人はいますか?
たとえば、多数のビュー(> 100)でBackboneを使用する場合、すべてのビューが一度に読み込まれ、その後常に使用できるビューオブジェクトを用意する方がよいでしょうか、それとも必要に応じてすべてを非同期で読み込む必要がありますか?
また、モバイルとデスクトップのこれらの考慮事項に違いはありますか?サイズではなく、モバイルでのリクエストのnumberを制限したいとのことです。
require.jsの目的が、すべてのスクリプトを本番環境で非同期にロードすることだとは思いません。 developmentでは、プロジェクトに変更を加えて「コンパイル」ステップなしでリロードできるため、各スクリプトの非同期ロードが便利です。ただし、productionでは、 r.jsオプティマイザー を使用して すべてのソースファイルを結合 1つ以上の大きなモジュールにする必要があります。 。大規模なWebアプリがモジュールのサブセットのロードを後で(特定のユーザーアクションの後など)まで延期できる場合、これらのモジュールは個別に最適化して、本番環境で非同期にロードできます。
単一の大きなJSファイルと複数の小さなファイルの読み込み速度については、一般的に次のようになります。
「HTTPリクエストの削減」は、フロントエンドのパフォーマンスを高速化するための一般的な格言になりました。これは、今日のモバイルブラウザの世界(ブロードバンド接続よりも桁違いに遅いネットワークで実行されることが多い)にさらに関連する懸念事項です。 [参照]
ただし、次のような他の考慮事項があります。
最後に、 Steve Soudersによる良い記事があります スクリプトの読み込みテクニックの束を要約しています。
更新:CDNの使用法について:Steve Souders 詳細な分析を投稿 サードパーティライブラリ(jQueryなど)にCDNを使用する多くの考慮事項、長所と短所を識別します。
この質問はもう少し古いですが、私は自分の考えを追加するかもしれないと思いました。
R.jsを使用してすべてのコードを本番用に結合する点で rharper に完全に同意しますが、機能を分割する場合もあります。
シングルページアプリの場合、すべてをまとめることは理にかなっていると思います。ページの相互作用がある大規模でより伝統的なページベースのウェブサイトの場合、これは非常に面倒であり、多くのユーザーに多くの不要なコードをロードする結果になる可能性があります。
私が数回使用したアプローチは
ここでの利点は、最初のページの重みを低く抑えることです。ページの読み込み後に追加のスクリプトが非同期で読み込まれるため、知覚されるパフォーマンスが速くなるはずです。とは言うものの、この方法でロードされたすべての機能は、プログレッシブエンハンスメント(つまり、フォームのajax)としてアプローチする必要があります。これにより、ロードが遅い場合やエラーが発生した場合でも、基本的な機能を引き続き使用できます。