Domanda

Ho una pagina in cui ho bisogno SWFObject, jQuery e Google Maps API. Ho pensato che avrei potuto utilizzare i vantaggi di utilizzare:

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

Ma ora ho letto da qualche parte ( http://encosia.com/2008/12/10/3-reasons-why-you-should-let-google-host-jquery-for-you/ ) che ho bisogno di usare

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

invece di $ (document) .ready () .. È vero?

È stato utile?

Soluzione

Ci sono due modi di usare l'API Ajax Biblioteche.

In primo luogo, si può semplicemente utilizzare Google per ospitare il file jQuery:

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

In secondo luogo si può utilizzare per fare asincrona carichi di jQuery, che è quello che si sta facendo riferimento. Se si esegue questa operazione il modello è:

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

Il motivo è necessario utilizzare google.setOnLoadCallback() è perché carico jQuery in questo caso è asincrona, quindi è necessario attendere per jQuery per caricare e del documento per essere pronti.

Il motivo è necessario utilizzare jQuery all'interno della callback carico è perché non può essere caricato in qualsiasi altro luogo al momento si esegue il Javascript, che porta a una condizione di competizione potenziale e gli errori intermittenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top