2012-04-30 2 views
0

さまざまなWebサイトの最適化ガイドは、可能であれば、複数のjavascriptを1つに結合してhttpリクエストの数を減らすことを推奨しています。一方、googleとmicrosoftのようなCDNSを使用すると負荷が分散され、ブラウザが並行してダウンロードできるようになるという若干直交した提案があります。複数のjavascriptを組み合わせてCDNを分割する

私は自分自身だけでなく、サードパーティのjsを含めて、すべてのjavascriptを1つのjavascriptファイルとして組み合わせるべきか、それらを別々にしておくべきですか(少なくとも無料のCDNで利用できるものについては、

ブラウザは複数のjavascritファイルを並行してダウンロードするのか、JavaScriptをダウンロードする前に各javascriptをダウンロードするのか、私には不明です。

JavaScriptを頻繁に使用するウェブサイトがあり、私が使用しているライブラリがいくつかあります(jquery、jquery-ui、jquery.json-2.3、jquery.metadata.js、jquery.jcarousel.min.js jquery)。 validate.js、jquery.blockUI.js)。

答えて

1

CDNの参照は、常に良い考えです。ブラウザがより多くのhttp-requestをしなければならないとすると、これは一度だけ起こるため無効です。ファイルはキャッシュされ、再度要求されることはありません。 CDNの場合、ユーザーは既にキャッシュされたバージョンを持っていて、それをまったく要求する必要はありません(ローカルバージョンを参照するとき、そのバージョンをキャッシュすることはできません)。

利用可能なサードパーティのプラグインごとにCDNを参照しようとお勧めします。 CDNでホストされていない独自のスクリプトやスクリプトの場合は、スクリプトを小さくして1つのファイルに入れて、トラフィックの負荷を軽減してください。

(により縮小のために、利用できるオンラインツールがたくさんある、すなわちhttp://jscompress.com/、また、あなたは、いくつかのもののうち、単一のjsファイルを生成することができますする)彼らは別のCDNにしているので、

+0

クイック返信ありがとうございますが、複数のjavascriptがブラウザで並行してダウンロードされている場合にのみ、CDNの利点がわかります。すべてのjavascriptをダウンロードするためのブラウザブロックがあれば、それは助けにならないかもしれません(javascriptが最初にキャッシュされていないと仮定して)。さらに、さまざまなCDNSには多くのバージョンのjsライブラリがあり、jqueryを使用している他のWebサイトにもすでにキャッシュされている可能性があるという議論があります。恐らく有効ではありません。私のjavascriptをダウンロードすれば、それは後続のページにもキャッシュされません。最後の質問に答えるには – Divick

+0

- はい、その後のリクエストでは、ファイルもブラウザによってキャッシュされます。 ほとんどのCDNは、常に最新のバージョン(Googleのcdnはバージョン番号として '1'を指定したときにこれを実行します)を参照する可能性も提供します。これは、異なるバージョンのキャッシュが存在する可能性があるという議論に役立ちます。最新バージョンへのURLを使用すると、キャッシュされたバージョンを参照する確率が高くなります。cdnsを使用することを強くお勧めします。トラフィックを節約し、ユーザーがいくつかのリクエストを保存するかもしれません(時間が経つにつれて、cdnsはもっと頻繁に参照されます)。 –

+0

でも、ブロッキングについては、一部のブラウザでは、スクリプトがdomに影響せず、したがって並列に読み込むことができると仮定した「推測」アプローチもサポートしています。このアプローチがなくても、パフォーマンス、トラフィック、および安定性の最高の混合物については、あなたがcdnの方が良いと思います。 –

0

ブラウザが複数のJSファイルをダウンロードしてください。彼らは同じCDNにいるとき、ブラウザは、別のものをダウンロードするために完了するのを待つ。

可能であれば、サードパーティ製のスクリプトを別のファイルやCDNに保存し、独自のスクリプトを細分化して、CDNを作成して読み込みを高速化することをお勧めします。

+0

あなたは、ブラウザが同じから複数のjavascriptをダウンロードしないように提案していますか?ドメインは、javascriptsが別のドメインから来た場合には並行して実行されますか?しかし、それは少し変わって聞こえる。それについてもっと考えてみると、ブラウザはページ上に複数のjavascriptを並行してダウンロードできます(異なるドメインと同じドメインから、通常は2つ以上の同じドメインへの並列リクエストの数に制限されない限り) 。 – Divick

関連する問題