2008-10-16 4 views
38

Google alberga algunas bibliotecas populares de JavaScript en: http://code.google.com/apis/ajaxlibs/¿Cuáles son las ventajas de usar google.load ('jQuery', ...) frente a la inclusión directa de URL de script alojado?

según Google:

La forma más poderosa para cargar las bibliotecas es mediante el uso google.load() ...

¿Cuáles son las ventajas reales de usar

google.load("jquery", "1.2.6")

vs

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

?

Respuesta

31

Además de la ventaja de que Google puede agrupar múltiples archivos en la solicitud, no hay beneficio para usar google.load. De hecho, si conoce todas las bibliotecas que desea usar (digamos jQuery 1.2.6), posiblemente esté haciendo que el navegador del usuario realice una conexión HTTP innecesaria. Dado que el objetivo de usar el alojamiento de Google es reducir el consumo de ancho de banda y el tiempo de respuesta, la mejor decisión, si solo está utilizando 1 biblioteca, es llamar directamente a esa biblioteca.

Además, si su sitio utilizará algún certificado SSL, debe planearlo llamando al script a través de la conexión HTTPS de Google. No hay inconveniente en llamar a una secuencia de comandos https desde una página http, pero llamar a una secuencia de comandos http desde una página https provocará problemas de depuración más oscuros de los que le gustaría pensar.

+7

Sugiero evitar https a menos que tenga que ... Hay un pequeño golpe de rendimiento para el cliente cuando recuperan la fuente HTTPS frente a la fuente HTTP ... Más importante aún, el contenido HTTPS no suele almacenarse en caché, por lo que se está perdiendo el aspecto del beneficio de almacenamiento en caché – Dscoduc

+1

Sin embargo, al recuperar HTTP javascript para una página HTTPS se derrota la protección man-in-the-middle - Mallory puede inyectar su javascript malicioso en esta solicitud HTTP y toda su seguridad HTTPS se va por la ventana. – bdonlan

+3

La diferencia de rendimiento entre HTTP y HTTPS es tan pequeña que es insignificante, y realmente no me preocuparía demasiado al respecto. –

3

Permite Google cambiar la dirección URL (pero pueden no desde que se establecieron ya el método de URL)

En teoría, si lo hace varias google.load() s, Google puede agrupar a continuación en un archivo, pero no creo que se implemente.

4
  1. Le permite a dynamically load las bibliotecas en su código, donde quiera.
  2. Porque le permite cambiar directamente a una nueva versión de la biblioteca en el javascript, sin forzarlo a reconstruir/cambiar plantillas en todo su sitio.
+0

La segunda afirmación es incorrecta, pero aún necesita especificar la versión de la biblioteca. –

+4

Al especificar la versión "1" se carga la última revisión disponible para la versión 1, p. google.load ("jquery", "1"); –

+2

Robert: No necesita usar google.load() para cambiar automáticamente a nuevas versiones ... http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js siempre cargará la última versión actualización de la versión 1. –

1

Es posible que desee cargar una biblioteca solo en condiciones especiales.

Además, el método google.load aceleraría la visualización de la página inicial. De lo contrario, la representación de la página se congelará hasta que se haya cargado el archivo si incluye etiquetas de secuencia de comandos en su código html.

+0

Agregar las etiquetas de script en la parte inferior ayuda. – user482594

3

Me parece muy útil para probar diferentes bibliotecas y métodos diferentes, especialmente si no está acostumbrado a ellos y desea ver sus diferencias uno al lado del otro, sin tener que descargarlos. Parece que una de las razones principales para hacerlo es que es asincrónico en comparación con la llamada síncrona de script. También obtienes algunas cosas interesantes que se incluyen directamente en el cargador de google, como la ubicación del cliente. Puedes obtener su latitud y longitud a partir de él. No necesariamente es útil, pero puede ser útil si planea tener publicidad dirigida o algo por el estilo.

Sin mencionar que la carga dinámica siempre es útil. Particularmente para suavizar la carga inicial del sitio.Mantener el "tiempo de carga del sitio" inicial al mínimo posible es algo que todo diseñador web está librando una batalla cuesta arriba.

0

Personalmente, estoy interesado en si hay un beneficio de almacenamiento en caché para los navegadores que ya han cargado esa biblioteca también. Parece que si alguien navega a google y carga la jQuery lib correcta y luego navega a mi sitio y carga la jQuery lib correcta ... ... ambos pueden usar la misma jQuery en caché. Sin embargo, esa es solo una posibilidad especulativa.

Editar: Sí, al menos cuando se usan las etiquetas de secuencia de comandos directas para la ubicación, la biblioteca JavaScript se almacenará en caché si alguien ha solicitado la biblioteca desde Google (por ejemplo, si fue incluida en otro sitio).

0

Si escribiera una carga de JavaScript que solo utilizara la biblioteca cuando ocurriera un evento en particular, podría esperar hasta que ocurra el evento para descargar la biblioteca, lo que evita solicitudes HTTP innecesarias para aquellos que realmente no terminan desencadenando el evento. Sin embargo, en el caso de bibliotecas como Prototype + Scriptaculous, que descarga más de 300kb de código JavaScript, esto no es práctico.

Cuestiones relacionadas