Google Ajax Libraries CDN para jQuery
-
24-09-2019 - |
Pergunta
Eu tenho uma página em que preciso da API Swfobject, JQuery e Google Maps. Eu pensei que 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 eu li em algum lugar (http://encosia.com/2008/12/10/3--reasons-why-you-shaft-let-google-host-jquery-for-you/) que eu preciso usar
google.setOnLoadCallback(function() {
// Place init code here instead of $(document).ready()
});
em vez de $ (document) .ready () .. isso é verdade?
Solução
Existem duas maneiras de usar a API do Ajax Libraries.
Em primeiro lugar, você pode usar o Google para hospedar seu arquivo jQuery:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
Em segundo lugar, você pode usá -lo para fazer cargas assíncronas de jQuery, que é a que você está se referindo. 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 você tem que usar google.setOnLoadCallback()
é porque carregar o jQuery neste caso é assíncrono, então você precisa esperar que o jQuery seja carregado e o documento a estar pronto.
O motivo pelo qual você deve usar o jQuery dentro do retorno de chamada de carga é porque ele não pode ser carregado em nenhum outro lugar no momento em que você executa o JavaScript, levando a uma condição de corrida potencial e erros intermitentes.