大規模なJSライブラリをロードするコストを削減するにはどうすればよいですか?


23

ページに大きなJavascriptライブラリを使用している場合、これがユーザーによるサイトの使用を損なわないようにするにはどうすればよいですか?

回答:


25

できることは4つあります。

  1. JSファイルを縮小します。これにより、すべてのコメントと空白が削除され、サイズが小さくなります。
  2. 各ページでJSファイルを組み合わせて、ファイルが1つだけになるようにします。
  3. パッケージを使用して、送信時にファイルをgzipします。これにより、さらに小さくなります
  4. 最後に読み込まれるように、必要のないJavascriptをすぐにページの下部に配置します。これにより、JSが完全にロードされる前であっても、ユーザーはページを表示して使用できます。

そして、他の何人かの人々は提案しました:

  • Apacheは圧縮(および圧縮コンテンツのキャッシュ)を自動的に処理し、ファイルの管理を大幅に簡素化します
  • JavaScriptを適切にキャッシュ可能にすると、大きなメリットが得られます。
  • ワイルドカードドメイン(複数のURIを使用)は、より多くの同時接続を許可します。プリフェッチは画像/

より多くのことができ、これらを行うより良い方法があります。Apacheは自動的に圧縮(および圧縮されたコンテンツのキャッシュ)を処理し、filseの管理を大幅に簡素化します。JavaScriptを適切にキャッシュ可能にすると、大きなメリットが得られます。ワイルドカードドメイン(複数のURI)により、より多くの同時接続が可能になります。プリフェッチは画像だけではありません/
-symcbean

21

一般的なライブラリ(jQuery、Prototype、Dojoなど)を使用している場合、ファイルをGoogleにオフロードして提供することができます。これにより、いくつかの利点が得られます。

  • 縮小や圧縮などを心配する必要はありません
  • それはあなたの帯域幅ではありません
  • これらのファイルは異なるドメインからのものであるため、ホスト名ごとに2つの並列リクエストという制限を(少なくとも部分的に)回避できます。
  • 運が良ければ、ユーザーは同じプロバイダーの同じライブラリを使用している他のサイトを既に訪問しているため、ブラウザーのキャッシュに既に存在しています。

注:求めるバージョンは、キャッシュの特性に大きな影響を与える可能性があります。jQuery1.4.2を要求すると、1年間キャッシュできるファイルが提供されますが、1.4は1時間しかキャッシュできません。


1
+ 1 CDNのために、そしてscriptsrc.net作ることも簡単;)
AGOS

1
「メモ」を拡張できますか?キャッシング時間に違いがあるのはなぜですか?
彼らは

2
@theycallmemorty:ドキュメントを確認していませんが、1.4.2を指定することで、必要なバージョンについて非常に具体的であり、1.4を要求することで、基本的に「 1.4 "未満の最新バージョンであるため、それほどキャッシュされていません。
Zhaph -ベンDuguid

また、Microsoftは、https(他の多くのスクリプトCDNではサポートされていない)をサポートするJSライブラリ(jQueryおよびMS固有のライブラリ)をasp.net/ajaxlibrary/cdn.ashxで提供しています
Bert Lamb

6

ライブラリ全体を1つのjsファイルに入れて、ファイルを圧縮できます。ただし、実際に問題になるのは、ページの最初の読み込みのみです。この後、特にcache-expirationを十分に長く設定した場合、jsファイルはブラウザーにキャッシュされます。したがって、連続してヒットしてもjsファイルはロードされません。


+1を使用すると、ライブラリ全体を1つのファイルに入れて圧縮できます。それを考えなかった。
ゴードンガスタフソン


0

多数のページ要素と個別のドメインへのアクセスがある場合は、2番目のドメインで大きなJSファイルを含むすべての静的ファイルをホストすることを検討できます。

Steve Soudersが彼のHigh Performance Web Sitesブログで述べているように -

...状況によっては、1つのドメインにダウンロードされている大量のリソースを取得し、それらを複数のドメインに分割する価値があります。このドメインをシャーディングと呼びます。これにより、より多くのリソースを並行してダウンロードできるようになり、ページ全体のロード時間が短縮されます。

他の場所で彼は書いています。

ブラウザは、ドメインごとに限られた数の接続を開きます... 1つのドメインではなく、2つのドメインにまたがる要求を分割またはシャーディングすると、特にIE 6および7でページが高速になります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.