web-dev-qa-db-ja.com

google.load( 'jQuery'、...)を使用することと、ホストされているスクリプトURLを直接含めることの利点は何ですか?

Googleはいくつかの人気のあるJavaScriptライブラリを次の場所でホストしています: http://code.google.com/apis/ajaxlibs/

グーグルによると:

ライブラリをロードする最も強力な方法は、google.load()を使用することです...

使用することの本当の利点は何ですか

google.load("jquery", "1.2.6")

vs.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

38

Googleがリクエストに応じて複数のファイルをバンドルできるという利点を除けば、google.loadを使用するメリットはありません。実際、使用したいすべてのライブラリ(jQuery 1.2.6など)がわかっている場合は、ユーザーのブラウザに不要なHTTP接続を1つ実行させている可能性があります。 Googleのホスティングを使用することの全体的なポイントは、帯域幅の消費と応答時間を削減することであるため、1つのライブラリのみを使用している場合は、そのライブラリを直接呼び出すことが最善の決定です。

また、サイトでSSL証明書を使用する場合は、GoogleのHTTPS接続を介してスクリプトを呼び出すことでこれを計画する必要があります。 httpページからhttpsスクリプトを呼び出すことにはマイナス面はありませんが、httpsページからhttpスクリプトを呼び出すと、考えているよりもわかりにくいデバッグの問題が発生します。

31
Eric Caron
  1. それはあなたが望むところならどこでもあなたがあなたのコードのライブラリを 動的にロードする することを可能にします。
  2. これは、サイト全体でテンプレートを再構築/変更することなく、JavaScriptでライブラリの新しいバージョンに直接切り替えることができるためです。
4
d8uv

これにより、GoogleはURLを変更できます(ただし、URLメソッドがすでに確立されているため変更できません)

理論的には、複数のgoogle.load()を実行すると、Googleは1つのファイルにバンドルできますが、実装されているとは思いません。

3
James Curran

さまざまなライブラリやさまざまなメソッドをテストするのに非常に便利だと思います。特に、それらに慣れておらず、ダウンロードせずにそれらの違いを並べて確認したい場合はそうです。これを行う主な理由の1つは、同期スクリプト呼び出しに対して非同期であるためと思われます。また、クライアントの場所など、Googleローダーに直接含まれている素敵なものもいくつか入手できます。あなたはそれから彼らの緯度と経度を得ることができます。必ずしも役立つとは限りませんが、ターゲットを絞った広告などを計画している場合に役立つことがあります。

言うまでもなく、動的ロードは常に役立ちます。特に初期のサイト負荷をスムーズにするため。初期の「サイトの読み込み時間」を可能な限り短くすることは、すべてのWebデザイナーが困難な戦いを繰り広げていることです。

3
user50297

特別な条件下でのみライブラリをロードしたい場合があります。

さらに、google.loadメソッドは最初のページ表示を高速化します。そうしないと、HTMLコードにスクリプトタグを含めると、ファイルが読み込まれるまでページのレンダリングがフリーズします。

1
aemkei

個人的には、そのライブラリもすでにロードされているブラウザにキャッシュのメリットがあるかどうかに興味があります。誰かがグーグルを閲覧して正しいjQueryライブラリをロードしてから私のサイトを閲覧して正しいjQueryライブラリをロードした場合のようです......どちらも同じキャッシュされたjQueryを使用する可能性があります。しかし、それは単なる推測の可能性です。

編集:はい、少なくともその場所への直接スクリプトタグを使用する場合、誰かがすでにgoogleからライブラリを呼び出している場合(たとえば、別のサイトに含まれている場合)、javascriptライブラリはキャッシュされます。

0
Kzqai

特定のイベントが発生したときにのみライブラリを使用するJavaScriptのボートロードを作成する場合は、イベントが発生してライブラリをダウンロードするまで待つことができます。これにより、実際にイベントをトリガーしないユーザーに対する不要なHTTPリクエストを回避できます。ただし、300kbを超えるJavaScriptコードをダウンロードするPrototype + Scriptaculousのようなライブラリの場合、これは実用的ではありません。

0
Andrew Noyes