4

SWFObject、jQuery、GoogleMapsAPIが必要なページがあります。私は使用することの利点を使用できると思いました:

<script type="text/javascript" src="http://www.google.com/jsapi?key=INSERT-YOUR-KEY"></script>
<script type="text/javascript">
    google.load("jquery", "1.4.1");
    google.load("swfobject", "2.2");
    google.load('maps', '2', {'callback': googleMapSetup });
</script>

しかし今、私はどこかで読んだ(http://encosia.com/2008/12/10/3-reasons-why-you-should-let-google-host-jquery-for-you/)使用する必要があります

google.setOnLoadCallback(function() {
    // Place init code here instead of $(document).ready()
});

$(document).ready()..の代わりにこれは本当ですか?

4

1 に答える 1

5

AjaxLibrariesAPIを使用する方法は2つあります。

まず、Googleを使用してjQueryファイルをホストできます。

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

次に、これを使用して、参照しているjQueryの非同期ロードを実行できます。これを行う場合、パターンは次のとおりです。

<script type="text/javascript" src="http://www.google.com/jsapi?key=INSERT-YOUR-KEY"></script>
<script type="text/javascript">
  google.load("jquery", "1.4.2");
  google.load("swfobject", "2.2");
  google.load('maps', '2', {'callback': googleMapSetup });
  google.setOnLoadCallback(function() {
    $(function() {
      // Place init code here instead of $(document).ready()
    });
  });
</script>

使用する必要がある理由は、この場合のjQueryのロードは非同期であるため、jQueryがロードさ、ドキュメントの準備ができるgoogle.setOnLoadCallback()まで待つ必要があるためです。

ロードコールバック内でjQueryを使用する必要がある理由は、Javascriptの実行時に他の場所にロードされない可能性があり、競合状態や断続的なエラーが発生する可能性があるためです。

于 2010-03-03T00:27:23.030 に答える