5

私はjavascriptなどに慣れていないので、これはばかげた質問かもしれません。
私は JQuery-UI チュートリアルを調べていましたが、次のものがあります。

<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>     
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />    
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>    
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

このような js コードを含めることができる場合、なぜ jquery ライブラリをダウンロードする必要があるのでしょうか?

4

3 に答える 3

14
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
if (!window.jQuery) {
    document.write('<script src="/path/to/your/jquery"><\/script>');
}
</script>

CDN を使用する場合、ユーザーは jquery ファイルを再度ダウンロードする必要はありません。おそらく既に jquery ファイルがキャッシュされているからです。

2 番目のスクリプト タグのコードは、jquery が CDN から利用可能かどうかをチェックし、マシン上の jquery のローカル コピーにフォールバックします。

于 2013-05-12T12:06:34.683 に答える
5

ローカルで作業したい場合は、ローカル コピーを作成することをお勧めします。

あなたが見ているのは、CDN (コンテンツ配信ネットワーク) と呼ばれるものです。これは、複数の Web サイト間でリソースをキャッシュできる可能性があるだけでなく、ブラウザーによって課される同じネットワークの制限にカウントされないため、有益です。

HTML5 ボイラープレートでは、これが少し異なります。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.8.3.min.js"><\/script>')</script>

ご覧のとおり、プロトコル相対パスを使用しているため、作業をローカルで (ローカル サーバーを実行せずに) 見ようとすると、file://プロトコルでリソースを見つけようとしてブラウザーがハングします。ローカル コピーを作成するもう 1 つの理由。

于 2013-05-12T12:05:27.073 に答える
5

プロジェクトの設定と要件によって異なります。私の経験から、他の方法では公開されているサードパーティの js ライブラリをダウンロードする次の理由を見つけました。

  • イントラネット システム。アプリケーションが外部にアクセスできないイントラネット システムである場合、ローカル コピーは必須です。

  • 制限付きホスティング環境。なんらかの理由で、ホスティング環境がアプリのリソースを含む特定のアドレスにアクセスできない場合、またはアクセスできないように明示的に構成されている場合は、ローカル コピーが適しています。

  • パフォーマンス。元のライブラリ URL への接続が遅く、クライアントでキャッシュが有効になっていない場合 (まれなケースまたは非常に特殊なケース)、おそらくアプリケーションは独自のコピーを維持する必要があります。

別のアプローチは、アプリケーションにリソースを提供するように設定されたコンテンツ配信ネットワーク (CDN) を用意することです。次に、リソースを取得する最も適切な方法を使用するのは CDN の責任です。アプリケーションは、CDN にアクセスする必要があるだけです。これは、コンテンツ管理がアプリケーションから分離されているため、またほとんどのブラウザーで CDN のパフォーマンスが優れているため、多くのシステムで推奨されるソリューションです。

于 2013-05-12T12:07:39.223 に答える