私たちの会社では、すべてのJavascriptファイルを1つの大きな(約700kbですが、成長している)縮小およびgzip圧縮されたJavascriptファイルに結合します。ページごとに1つの大きなJavascriptファイル(縮小およびgzip圧縮)を使用する場合と、ページごとに1つずつ複数のJavascriptファイルを使用する場合のパフォーマンスの違いを評価しようとしています。
明らかな違いは、大きなJavascriptファイルは、最初のページリクエストで読み込まれた後、ブラウザでキャッシュでき、その後はオーバーヘッドがほとんど発生しないことです。複数のjsファイルを使用する場合、異なるページごとに少なくとも1つのキャッシュされていないgetリクエストがあります。したがって、最初の最初のページの読み込みが遅いことと、連続する最初のページの読み込みが遅いことを交換します。
遅い初期ページの読み込み(1つの大きなJavascriptファイルを使用)がいつ問題になり、結合されたファイルを小さなファイルに分割してビルド手順を変更する作業を正当化するのかを知るために、どのくらいの時間がかかるかを調べたいと思いますコードが解析されるのにかかるので、ロードと解析の合計時間を見積もることができます。
これまでの私のアプローチは、現在の時間を要するテストページにスクリプトタグを追加し、Javascriptを使用して大きなスクリプトを追加し、その後、次のように時間を測定することでした。
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script')
script.setAttribute('type', 'text/javascript');
script.src = 'path/700kbCombineFile.js';
start_time = new Date().getTime();
head.appendChild(script);
700kbCombineFile.jsの最後に、次のように追加しました。
console.log(new Date().getTime() - start_time)
次に、firebugから取得したネットワーク転送時間を差し引くと、700 kbファイルの場合は約700ミリ秒、300kbファイルの場合は約300ミリ秒を受け取ります。
このアプローチは理にかなっていますか?なぜだめですか?これを行うためのより良い方法/ツールはありますか?