Google AJAX Bibliotecas CDN para jQuery
-
24-09-2019 - |
Pregunta
Tengo una página donde tengo que SWFObject, jQuery y Google Maps API. Pensé que podría utilizar las ventajas 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>
Pero ahora he leído en alguna parte ( http://encosia.com/2008/12/10/3-reasons-why-you-should-let-google-host-jquery-for-you/ ) que necesito para uso
google.setOnLoadCallback(function() {
// Place init code here instead of $(document).ready()
});
en lugar de $ (document) ready () .. ¿Es esto cierto?
Solución
Hay dos formas de utilizar la API Ajax Libraries.
En primer lugar, sólo puede utilizar Google para alojar el archivo de jQuery:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
En segundo lugar se puede usar para hacer asíncrono cargas de jQuery, que es lo que usted se refiere. Si lo hace el patrón es:
<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>
La razón por la que tiene que usar google.setOnLoadCallback()
se debe a que la carga de jQuery en este caso es asíncrona por lo que es necesario esperar a que se cargue jQuery y el documento esté listo.
La razón por la que tiene que utilizar jQuery dentro de la devolución de llamada de carga se debe a que no se puede cargar en cualquier otro lugar en el momento de ejecutar el Javascript, lo que lleva a una condición de carrera potencial y errores intermitentes.