0

私が取り組んでいるサイトには、Facebook、Twitter、Google +、Pinterestなどの複数のソーシャルボタンがあります。

これらのほとんどには、ページに含める独自の外部.jsファイルがあります。httpリクエストに関係するサイトの場合、すべてのソーシャル.jsファイルを1つに結合することの欠点は何ですか?

私は主に、スクリプトがベンダーによっていつ更新されるかについて心配しています。この種の状況の通常のプロトコルは何ですか?追加のリクエストを保持しますか、それとも古いコードを使用するリスクがありますか?

4

2 に答える 2

3

ブラウザのキャッシュはすでにこの問題を解決しているはずです。ベンダーのスクリプトを使用することの大きな利点は、すべてのWebサイトがそのベンダーのスクリプトの同じコピーにリンクしているため、(前のページでのブラウザーアクセスのために)ブラウザーに既にキャッシュされている可能性が高いため、http要求がないことです。それらがすでにブラウザのキャッシュにあるときにそれらをロードする必要があります。独自のコピーを使用する場合は、サイト用に新たにダウンロードする必要があり、そのコードが既にブラウザーにキャッシュされているという事実を利用することはできません。

キャッシングに加えて、このようなほとんどのベンダーは、CDNを使用してスクリプトをホストします。これは、ホスティングサイトよりも速くスクリプトをダウンロードできるはずの、ダウンロードを高速化するための分散および最適化された場所です。

キャッシングの問題以外では、これらのスクリプトはベンダーのサイトにとどまる必要があり、ベンダーが適切と考えるようにベンダーによって維持されます。彼らが彼らを変えたいのなら、それは彼らの特権です。それらを独自の結合スクリプトに結合することはできません。彼らはいつでもサイトの動作を変更する可能性があり、コピーされた古いスクリプトを使用していると、機能が簡単に壊れてしまう可能性があります。

それらの使用方法によっては、サードパーティのスクリプトを変更して、動的にロードされ、通常のページスクリプトがロードされた後にロードされるようにすることができる場合があります。これにより、UIの表示が遅れる可能性がありますが、ページの読み込みが少し速くなる可能性があります。

于 2012-08-20T18:57:32.750 に答える
1

マージの欠点:

  • ベンダーのJSファイルを簡単に更新できません。
  • ベンダーのCDNを利用できません。(マージされたバージョンをサーバーに保存します。)

最初の問題の解決策は、ソーシャルライブラリの最新バージョンを定期的にマージするcronジョブをサーバーで実行することです。この結合されたバージョンは、ユーザーに提供されます。

于 2012-08-20T18:59:46.797 に答える