¿Por qué debería usar el CDN de Google para jQuery?

Esto puede ser obvio para algunos, pero me he estado preguntando: ¿por qué debería depender del servidor de Google para alojar jQuery para mi sitio?

¿Es solo porque se carga más rápido de esta manera?

Esto es porque:

  1. Aumenta el paralelismo disponible.
    (La mayoría de los navegadores solo descargarán 3 o 4 archivos a la vez desde cualquier sitio).
  2. Aumenta las posibilidades de que haya un golpe de caché.
    (A medida que más sitios siguen esta práctica, más usuarios ya tienen el archivo listo).
  3. Asegura que la carga útil sea lo más pequeña posible.
    (Google puede precomprimir el archivo en una amplia gama de formatos (como GZIP o DEFLATE). Esto hace que el tiempo de descarga sea muy pequeño, porque está súper comprimido y no se comprime sobre la marcha).
  4. Reduce la cantidad de ancho de banda utilizado por su servidor.
    (Google básicamente ofrece ancho de banda gratuito).
  5. Asegura que el usuario obtendrá una respuesta geográficamente cercana.
    (Google tiene servidores en todo el mundo, disminuyendo aún más la latencia).
  6. (Opcional) Mantendrán automáticamente sus scripts actualizados.
    (Si le gusta “volar por el borde de sus pantalones”, siempre puede usar la versión más reciente de cualquier script que ofrezca. Esto podría solucionar los problemas de seguridad, pero en general solo rompe sus cosas).

Hay varios escenarios en los que es posible que no desee utilizar jQuery del CDN de Google:

  1. Cuando está creando una aplicación de intranet donde el servidor web está alojado en la misma red que los clientes. Si utiliza el CDQ jQuery de Google, realizará una llamada a Internet en lugar de un servidor web en la red local. Esto aumenta el ancho de banda para su organización, y es más lento.

  2. Cuando quiere ejecutar su aplicación fuera de línea . (Muy relacionado con el primer problema) Si necesita trabajar en un entorno de desarrollo (administrado, por ejemplo, con Bower ), es posible que deba poder hacer que su aplicación funcione sin conexión a Internet (es decir: en un tren 🙂

  3. Cuando necesitas personalizarlo Por ejemplo, si usa Grunt para comstackr la biblioteca para usar solo ciertos módulos o configurar el nombre de AMD

  4. Cuando está publicando páginas sobre SSL que requieren jQuery. Debería servir el JavaScript sobre SSL así como su página para evitar problemas de seguridad y advertencias.

Además, Microsoft aloja jQuery en su CDN. Esa es otra opción comparable al uso de jQuery alojado de Google.

Este estudio de TJ VanToll me convenció de que es mejor concatenar jQuery con otros scripts en lugar de cargarlo desde un CDN.

La razón es la latencia involucrada en la obtención de jQuery en dispositivos móviles:

“En 2012, el tiempo medio de RTT en una red móvil en los Estados Unidos fue de 344 ms. Y eso 344ms se aplica no solo a todas las solicitudes HTTP, que ahora la página web promedio genera, sino también a todas las búsquedas DNS y conexiones TCP … Mientras que los RTT promedio están mejorando, solo hay pequeñas ganancias adicionales, ya que las redes actuales están dentro de un pequeño factor del límite teórico dictado por la física “.

También cita esta publicación de Steve Souders que muestra por qué es poco probable que obtenga el beneficio de almacenamiento en caché utilizando un CDN:

“Debido a la fragmentación en los proveedores de CDN, las versiones de jQuery y el uso de protocolos (http vs. https), las posibilidades de obtener un caché de CDN son escandalosamente bajas, y la descarga desde un dominio externo tiene el potencial de realizar no una, sino tres viajes redondos (una búsqueda DNS, una conexión TCP y un HTTP GET). ”

El mayor beneficio es el almacenamiento en caché. La teoría es que si un visitante visitó un sitio que estaba cargando sus bibliotecas de JavaScript, por ejemplo, jQuery de Google CDN, cuando visita su sitio web, la biblioteca ya está en el caché del navegador de ese usuario y no tendrá que volver a descargarse. . Esto suena genial en teoría.

Los beneficios que se comparten aquí y en otros lugares son todos teóricos. Acabo de encontrar un análisis en profundidad sobre el uso de un CDN y si proporciona los beneficios de rendimiento esperados. http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits

Una razón importante para NO permitir que Google aloje su jQuery, una que mucha gente no piensa, es que no se descargará si se encuentra en China. Está bloqueado junto con muchos otros scripts, fonts, etc. alojados por Google CDN. Si necesita llegar a una audiencia china, es mejor que siempre use un respaldo alojado en su propio servidor. Google APIS bloqueado en China

Algunas buenas respuestas aquí para “Por qué deberías …” y “Por qué no deberías …”

Simplemente quiero agregar una lista de alternativas a Google si desea cargar jQuery desde un CDN.

Pero para resumir, básicamente estás mejorando el rendimiento general de tu sitio web / aplicación.