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 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?
Respuestas:
Esto es porque:
Hay varios escenarios en los que es posible que no desee utilizar jQuery del CDN de Google:
Cuando está creando una aplicación de intranet donde el servidor web está alojado en la misma red que los clientes. Si usa el CDN 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.
Cuando quieras ejecutar tu aplicación sin conexión . (Muy relacionado con el primer problema) Si necesita trabajar en un entorno de desarrollo (administrado, por ejemplo, con Bower ), es posible que deba hacer que su aplicación funcione sin conexión a Internet (es decir, en un tren :)
Cuando necesites personalizarlo . Por ejemplo, si usa Grunt para construir la biblioteca para usar solo ciertos módulos o establecer el nombre de AMD
Cuando está sirviendo páginas sobre SSL que requieren jQuery. Debe 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 por Google.
src="//ajax.googleapis.com/..."
, trabajo.
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 RTT promedio en una red móvil en los Estados Unidos fue de 344 ms. Y ese 344 ms se aplica no solo a todas las solicitudes HTTP, que la página web promedio ahora hace 93, sino también a todas las búsquedas de DNS y conexiones TCP ... Si bien los RTT promedio están mejorando, solo se pueden obtener 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é al usar un CDN:
"Debido a la fragmentación en los proveedores de CDN, las versiones de jQuery y el uso del protocolo (http vs. https), las posibilidades de obtener un impacto de caché de CDN son sorprendentemente bajas, y la descarga desde un dominio externo tiene el potencial de realizar no uno, sino tres viajes de ida y vuelta (una búsqueda de 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, por ejemplo, de Google CDN, cuando visitan su sitio web, la biblioteca ya está en la memoria caché del navegador de ese usuario y no tendrá que volver a descargarla . Esto suena muy bien 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 una 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, algo en lo que muchas personas no piensan, es que no se descargará si se encuentra en China. Está bloqueado junto con muchos otros scripts, fuentes, etc. alojados por Google CDN. Si necesita llegar a una audiencia china, lo mejor es usar siempre una reserva alojada en su propio servidor. Google APIS bloqueado en China
Algunas buenas respuestas aquí a "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á mejorando el rendimiento general de su sitio web / aplicación.
Use CDN con un Service Worker, puede descargar el CDN una vez en la vida del cliente y no cada vez que actualice su código.