javascript - online - Streaming jquery(archivos JS) desde un CDN(Google)
jquery.min.js cdn (5)
¿Es esta una pregunta real? Solo asegúrese de que su Cache-Control en sus encabezados HTTP esté configurado correctamente y que el cliente del usuario final solo lo extraiga una vez. Esta es una cantidad absolutamente trivial de datos.
Este es un caso de no hacer su tarea. :-)
Además de la ventaja dinámica de carga, ¿tiene sentido incluir una biblioteca de JavaScript (jQuery en mi caso) de un servidor de Google cuando puedo cargarlo desde mi servidor como un archivo único compuesto por el archivo zip de 19kb jQuery + el código JavaScript adicional I escrito, todo comprimido con un compresor JS y desinflado HTTP.
Con el servidor de Google tendré 2 viajes de ida y vuelta HTTP (paralelos). Uno para obtener el archivo jquery y el otro para obtener el código JavaScript del sitio. Un 19kb y el otro dicen 20-25kb. En circunstancias normales, sería una descarga única de 30-35 kb desde mi sitio.
¿Estás seguro de que las secuencias de comandos se descargarán en paralelo? Este ejemplo de Cuzillion parece decir que solo IE8 puede hacer eso.
También vale la pena averiguar cuántos de sus visitantes de página son visitantes nuevos y cuántos han visitado el sitio antes para ayudarlo a decidir cuánto tiempo de almacenamiento en caché influirá en el tiempo de descarga. Si tiene un número significativo de visitantes por primera vez, probablemente valga la pena inclinarlo a su favor para hacer la primera experiencia lo más rápido posible.
Tenga en cuenta que una secuencia de comandos de jQuery descargada de Google CDN bien podría estar almacenada en caché en el navegador de un visitante, ya que tiene encabezados consistentes y control de la memoria caché sin importar desde dónde se descarga. Por lo tanto, en promedio, la mayoría de los usuarios solo tendrán que descargar los scripts de JavaScript específicos del sitio. Además, CDN generalmente tiene tiempos de respuesta más rápidos que los servidores únicos, ya que responden desde un servidor más cercano a su ubicación.
No hay una respuesta abreviada a su pregunta, ya que ambos enfoques ofrecen un buen rendimiento en las conexiones modernas. Debe perfilar su sistema bajo coacción y ver qué solución ofrece los mejores resultados (y si tal optimización es necesaria).
Una prueba de referencia realizada por httpwatch para archivos js de google.
http://blog.httpwatch.com/2008/11/27/google-adds-https-support-to-the-ajax-libraries-api/
En mi opinión, no hay ningún inconveniente real en el uso de un conocido CDN de jQuery (como el de Google), y hay algunas ventajas potenciales, por lo que mi preferencia personal es adoptar el enfoque de CDN. Si nada más, ese es un archivo menos para que tenga que preocuparme y mantener como parte de mi árbol fuente.
Hay varias ventajas que veo al usar un CDN vs. un único archivo de JavaScript con alto contenido graso:
- Reducir la latencia para recuperar recursos no almacenados en caché, ya que estos activos se sirven desde ubicaciones de borde
- Para las secuencias de comandos de terceros, es probable que el navegador del usuario ya las haya almacenado en la memoria caché y no tenga que volver a descargarlas para su sitio.
- Trabajando en torno a las limitaciones del navegador por host para solicitudes paralelas, mediante la distribución de sus activos a través de múltiples nombres de host (por supuesto, esto también se puede hacer a través de sus propios servidores utilizando trucos simples de subdominio).
- Reducir la carga general en sus servidores principales, especialmente importante durante los períodos pico de uso o "ataques" YC / Slashdot.
Cuándo preocuparse por el tiempo de descarga de los activos de página HTML:
- Cuando tiene un número significativo de visitantes nuevos (de los motores de búsqueda y / o las redes sociales). La investigación muestra que las personas no son muy pacientes en estos días, por lo que realmente tiene que salir de su camino para dar una buena primera impresión. (Consulte también los artículos de Jakob Nielsen sobre Abandono de página , Motores de respuesta y Tiempos de respuesta ).
- Para visitantes que usan dispositivos móviles. Las redes de datos móviles suelen ser lentas y / o congestionadas.
- Para las tiendas que practican la entrega continua y que causan frecuentes pérdidas de activos (más comunes para sitios y aplicaciones nuevos)
PD: Aaron Hopkins tiene uno de los mejores comentarios sobre cómo optimizar el tiempo de carga de páginas que he visto. Un poco anticuado, pero aún bastante relevante.
PSS: es posible que desee echarle un vistazo a Zepto, una alternativa compatible con Api ligera (24K vs 100K) a jQuery .