Google bibliotecas AJAX CDN para jQuery

Tenho uma página onde preciso do SWFObject, do jQuery e da API do Google Maps. Eu pensei que eu poderia usar os benefícios de usar:

<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>
Mas agora leio em algum lugar (http://encosia.com/2008/12/10/3-reasons-why-you-should-let-google-host-jquery-for-you/) que preciso de usar

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

em vez de $(Documento).pronto().. É verdade?

Author: FFish, 2010-03-03

1 answers

Existem duas formas de usar a API das bibliotecas Ajax.

Em primeiro lugar, pode usar o Google para hospedar o seu ficheiro jQuery:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
Em segundo lugar, podes usá-lo para fazer um monte de jQuery, que é a isso que te estás a referir. Se você fizer isso o padrão é:
<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>

A razão pela qual tem de usar {[[2]} é porque carregar o jQuery neste caso é assíncrono, pelo que tem de esperar que o jQuery seja carregado e que o documento esteja pronto.

A razão pela qual tens de o fazer use o jQuery dentro do callback de carga é porque ele pode não ser carregado em qualquer outro lugar no momento em que você executar o Javascript, levando a uma condição de corrida potencial e erros intermitentes.

 4
Author: cletus, 2010-03-03 00:27:23