Hay algunos problemas aquí. En primer lugar, el método de carga asíncrona que especificó:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('jquery', '1.3.1');
google.setOnLoadCallback(function() {
// do stuff
});
</script>
Tiene un par de problemas. Las etiquetas de script detienen la carga de la página mientras se recuperan (si es necesario). Ahora, si tardan en cargar, esto es malo, pero jQuery es pequeño. El verdadero problema con el método anterior es que debido a que la carga de jquery.js ocurre de forma independiente para muchas páginas, terminarán de cargarse y renderizarse antes de que jquery se haya cargado, por lo que cualquier estilo de jquery que realice será cambio visible para el usuario .
La otra forma es:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
Pruebe algunos ejemplos simples como, tener una tabla simple y cambiar el fondo de las celdas a amarillo con el método setOnLoadCallback () vs $ (document) .ready () con una carga estática jquery.min.js. El segundo método no tendrá un parpadeo notable. La primera voluntad. Personalmente, creo que no es una buena experiencia de usuario.
Como ejemplo, ejecute esto:
<html>
<head>
<title>Layout</title>
<style type="text/css">
.odd { background-color: yellow; }
</style>
</head>
<body>
<table>
<tr><th>One</th><th>Two</th></tr>
<tr><td>Three</td><td>Four</td></tr>
<tr><td>Five</td><td>Six</td></tr>
<tr><td>Seven</td><td>Nine</td></tr>
<tr><td>Nine</td><td>Ten</td></tr>
</table>
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("jquery", "1.3.1");
google.setOnLoadCallback(function() {
$(function() {
$("tr:odd").addClass("odd");
});
});
</script>
</body>
</html>
Usted (debería) ver aparecer la tabla y luego las filas se vuelven amarillas.
El segundo problema con el método google.load () es que solo aloja un rango limitado de archivos. Este es un problema para jquery, ya que es extremadamente dependiente del complemento. Si intenta incluir un complemento jquery con una <script src="...">
etiqueta ygoogle.load()
el complemento probablemente fallará con mensajes de "jQuery no está definido" porque aún no se ha cargado. Realmente no veo una forma de evitar esto.
El tercer problema (con cualquiera de los métodos) es que son una carga externa. Suponiendo que tiene algunos complementos y su propio código Javascript, tiene un mínimo de dos solicitudes externas para cargar su Javascript. Probablemente sea mejor obtener jquery, todos los complementos relevantes y su propio código y ponerlo en un archivo minificado.
De API Ajax de Bibliotecas debe usted utilizar Google para alojar? :
En cuanto a los tiempos de carga, en realidad está cargando dos scripts: el script jsapi y el script mootools (la versión comprimida de arriba). Entonces eso son dos conexiones, en lugar de una. En mi experiencia, descubrí que el tiempo de carga era en realidad 2-3 veces más lento que el de mi servidor compartido personal, a pesar de que provenía de Google, y mi versión del archivo comprimido era un par de K más grande que la de Google. Esto, incluso después de que el archivo se haya cargado y (presumiblemente) en caché. Entonces, para mí, dado que el ancho de banda no importa mucho, no va a importar.
Por último, tiene el posible problema de que un navegador paranoico marque la solicitud como una especie de intento de XSS. Por lo general, no es un problema con la configuración predeterminada, pero en las redes corporativas donde el usuario puede no tener control sobre qué navegador usa, y mucho menos la configuración de seguridad, puede tener un problema.
Entonces, al final, no puedo verme realmente usando la API de Google AJAX para jQuery al menos (las API más "completas" son una historia diferente en algunos aspectos) mucho, excepto para publicar ejemplos aquí.
src
sintaxis más simple / segura / rápida que usa ahora? Su respuesta se ha vuelto básicamente canónica y ambos cambios ayudarían a las personas a obtener lo que vinieron rápidamente.