Frage

Ich habe eine Seite, wo ich brauche SWFObject, jQuery und Google Maps API. Ich dachte, dass ich die Vorteile der Verwendung verwenden:

<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>

Aber jetzt habe ich irgendwo gelesen ( http://encosia.com/2008/12/10/3-reasons-why-you-should-let-google-host-jquery-for-you/ ) dass ich zu verwenden

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

statt $ (document) .ready () .. Ist das wahr?

War es hilfreich?

Lösung

Es gibt zwei Möglichkeiten, die Ajax Bibliotheken API.

Zum einen können Sie nur Google benutzen, um Ihre jQuery-Datei Host:

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

Zum anderen können Sie es verwenden async Lasten von jQuery zu tun, das ist das, was Sie sich beziehen. Wenn Sie dies tun das Muster:

<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>

Der Grund für einen Benutzer google.setOnLoadCallback() ist, weil Laden jQuery in diesem Fall asynchron ist, so dass Sie warten müssen für jQuery geladen werden und das Dokument fertig sein.

Der Grund, warum Sie haben jQuery innerhalb der Last Callback zu verwenden, weil es nirgendwo sonst zu dem Zeitpunkt geladen werden, können Sie die Javascript ausführen, was zu einer potenziellen Racebedingung und intermittierenden Fehlern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top