web-dev-qa-db-ja.com

外部JSライブラリ

私のページで呼び出す外部jsファイルがいくつかありますが、現時点では、これらはヘッダーのスクリプトタグを介して呼び出されます。

これらをローカルにプルし、テーマスクリプトファイルに含めて、ページの読み込み時間を短縮したいと思っています。スクリプトを最新の状態に保つにはオーバーヘッドがあることは知っていますが、ページの総読み込み時間を短縮できる場合は、その価値があるかもしれません。

これには良い習慣がありますか?それらを外部に保持する必要がありますか、それともdrupal JS構造に含めるのが良いですか?

5
Jeremy French

スクリプトが何であるかに大きく依存すると思います。ローカルに含めるのではなく、サードパーティのスクリプトを使用することには明らかに利点があります。ほとんどの場合、swfobject、webfont loaderなどの場合は、可能であればgoogle Library API(http://code.google.com/apis/libraries/)を使用するようにします。ここでの利点は、クライアントがこれらのライブラリをすでにキャッシュしている可能性があり、ローカルでホストするよりもパフォーマンスが向上することです。スクリプト用に広く使用されているサードパーティのホストがない状況では、通常、それらをサイト/ all/libraries/$ library_nameに追加してローカルに含めます。これにより、JSを集約および縮小するDrupalの機能を活用できます。

6
beeradb

外部スクリプトをローカルにプルすることの最終的な効果は、多くの要因に依存します。たとえば、次のことを考慮してください。

  • すべてのブラウザは、特定のサーバーから同時にプルするリソース(Javascript/CSS /画像)の数に制限があります。ドメインのリソース数を増やすと、結果としてページの総負荷が増える可能性があります。
  • 中央の配布ポイント(Google Libraries APIなど)は地理的に分散しており、おそらく独自のサーバーよりも信頼性が高く高速です。
  • 中央の配布ポイントからライブラリが配布されている場合、クライアントはライブラリを既にキャッシュに持っている可能性があります。
  • Drupal 6は、JSファイルとCSSファイルの集計方法が特におかしいので、クライアントが、JavaScriptファイルのセットが異なるWebサイトのページにアクセスした場合、同じライブラリを何度もダウンロードする必要があります。

したがって、CDNでホストされているバージョンを既に使用している場合は、ローカルバージョンに再度切り替えることをお勧めします。

3
Damien Tournoud

新しいモジュールを見てください Advanced CSS/JS Aggregation -これは、これまでで最も完全で効率的な集約システムを提供することを目的としています。

3
Vacilando