2011-09-16 15 views
39

ウェブページのパフォーマンスを向上させるために、CDNを使用して、.jsファイルをウェブページに配信することをお勧めします。それは理にかなっている。バンドル.jsファイルとCDN

また、ロード時にサーバーに対して行われている要求の数を減らすために、.jsファイルをバンドルすることをお勧めします。

したがって、CDNを使用するか、.jsのバンドルファイルを使用するかを決める必要があります。

賛否両論は何ですか?どちらが理にかなっていますか?

+0

.jsファイルのCDN *のみを使用することは、奇妙な決定のようです。 :) – bzlm

+2

@bzlmそれは?多くの人にとって厳しいものではありません。 – tugberk

+0

どういう意味ですか?アプリケーションが主に.jsファイルで構成されていない限り、クライアント側で簡単にマージ、圧縮、キャッシュすることができるため、レイテンシや遅さの原因とはなりません。 – bzlm

答えて

13

なぜあなたはそれらを同梱できませんはCDNですか?それは、どちらか一方の決定であるべきではありませんか?

のいずれかを選択する場合は、含まれているファイルの数はどれくらいであるかによって異なります。.js少数のファイルについては、は、.jsファイルの束がの間違いなくより速くなるように、CDNがより速くなるように、を提案します。スイッチオーバーが行われる場所は、あなたが試してみるべきものです。

+0

その後開発段階はどうですか?それはあなたのプロジェクトを緊密に結合させます。 – tugberk

+3

@tugberk:それはそのようには動作しません。あなたは、アプリケーションをリリースするときに一緒にJavascriptファイルを組み合わせたビルドスクリプトを記述します。同じ手順で、ファイルを*小さくすることもできます。これにより、JavaScriptファイルのサイズがさらに縮小されます。 – Matt

+0

ですので、この作業を処理するプロセスが必要です。うーん、それは考えが必要だが、多くの意味がある。 – tugberk

12

私の答え:両方。それらを束ねてCDNに置く。

これを行うことの欠点はありますか?依存します。あなたはプロセスをどのように構築しますか?バンドリングと小型化を簡単に自動化できますか? Yahoo YUIやGoogle Closureなどを使用していますか?

また、GUIに依存するjQueryが多数ある場合、要素/エフェクト/ CSSが絶えず変更されるため、時間がかかることがあります。

可能性のある小型化のためにテストも重要です。

結論:5つのjavascriptファイル安全には1ファイルにまとめられます。

普通の古いHTMLと1つの外部javascriptリファレンスを持つページ=== 2つのリクエストをサーバーに送ります。しかし、あなたのサーバーへのCDN === 1リクエストでは、単純な古いHtmlと1つの外部javascript参照を持つページ。

現在、Googleクローズツールを使用しています。 Google Closure Inspectorは、次のに役立ちます:

閉鎖コンパイラは、あなたのオリジナルのJavaScriptコードを変更し、より小さく、オリジナルよりもより効率的な、しかし、読み、デバッグが難しくなってコードを生成します。 Closure Inspectorは、コンパイルされたコードに対応する元のソースコードの行を識別するソースマッピング機能を提供するのに役立ちます。

+0

一緒に束ねることは私にとってはあまり複雑ではありません。私が考えるのは、私がそれらを置くことができるところです。あなたは良いプロバイダを知っていますか?また、自分のCDNを持っています。 Cache-Control、If-Modified-Since、If-None-Matchヘッダーを処理します。 GEOのサポートはありません。 – tugberk

+0

私はRackspace Cloud Files(http://www.rackspace.com/cloud/cloud_hosting_products/files/)を6ヶ月間使用しています。問題はなく、Akamai CDNと統合されています。 –

0

他の人が既に述べたように、可能な場合は、両方とも答えがあります。バンドル(および縮小)は、ページの重量を減らすため、ユーザーに利益をもたらします。 CDNは、作業負荷を軽減するためにサーバーに利益をもたらします。一般的に言えば、パフォーマンスの問題を観察していないか、あるいは何もしないほうが良い場合を除いて、どちらかを最適化する必要はありません。あなたが考える必要があるいくつかのことがあります

0

...

はどのようにJSのくらいどのくらい後になるまで遅らせることができますが、初期のページロードでロードする必要がない、と?

GoogleアナリティクスのようにJSの読み込みを遅らせたり(ページの下部に配置するなど)、非同期に読み込んだりすると、JSスレッドがUIスレッドをブロックする時間を最小限に抑えることができます。

JSの負荷をどのように分けることができるかを検討した後、さまざまなJSファイルのマージ/縮小を処理します.HTTPリクエストを減らすことは、パフォーマンスを向上させる鍵です。

次に、CDNに移動して、CDNが圧縮されたJSコンテンツを提供できることを確認し、ヘッダが永久にキャッシュされるようにヘッダーを設定できるようにします(永久にキャッシュする場合はファイルをバージョンアップする必要があります)。 CDNは待ち時間を短縮するのに役立ちますが、クッキーレスでサイズを縮小します

静的コンテンツ用に別のドメインを設定することを検討したい場合は、並べ替え中にサーバーにポイントしてから価値があると思われる場合はCDNに切り替えてください。

Andy

関連する問題