libreria - jquery latest url
Cargar archivos desde un CDN o CDNS múltiples (8)
En una página web típica, cargo lo siguiente, todo desde CDN:
- jQuery
- Angular
- Oreja
- Icomoon
- algunos complementos angulares
¿Es mejor cargarlos desde 1 CDN (si es posible) o desde diferentes CDN? ¿Existen mejores prácticas para esto, o no hace una diferencia?
Debería evitar el uso directo de varios enlaces CDN en una sola página, ya que afecta el rendimiento. Puede probar el siguiente código para agregar varios enlaces CDN.
bundles.UseCdn = true;
bundles.Add(new ScriptBundle("~/bundles/jquery",
@"//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.2.js"
).Include(
"~/Scripts/jquery-{version}.js"));
Combina varios archivos en un solo archivo, reduce la cantidad de solicitudes al servidor que se requieren para recuperar y mostrar una página web.
Debes intentar evitar el uso de CDN como:
- Si CDN se realiza debido a algún motivo, también afectará a su aplicación y también puede enfrentar un tiempo de inactividad que nunca debería ocurrir en un código de producción
- para CDN, el navegador debe rastrear diferentes dominios y luego descargar los archivos necesarios, lo que llevará más tiempo
- La falta de solicitud a diferentes dominios también reducirá el tiempo de carga de tu aplicación
El navegador tiene un límite de 6 solicitudes a la vez, por lo que si realiza muchas solicitudes a la vez, estarán en la cola y tomarán más tiempo, así que intente minimizar el número de solicitudes.
Recomendación -
Usuario Bower / Grunt o Webpack en su aplicación -
- Bower traerá todas las dependencias de su aplicación a su servidor / máquina local para que no tenga que buscar diferentes dominios para obtener los archivos requeridos
- Grunt concatenará y fusionará todos los archivos diferentes en un solo archivo para que su tamaño disminuya y se realicen menos solicitudes desde el navegador para descargar archivos.
Si tiene alguna duda acerca de Bower / Grunt, puedo ayudarle en eso.
El uso de un CDN es el camino a seguir como ya contestaron otros, pero agregar más CDN solo aumentará hasta el punto en que los tiempos de búsqueda de DNS para cada CDN puedan comenzar a dominar el tiempo total de descarga.
Por lo tanto, tratar de maximizar cada CDN al intentar cargar al menos 2 a 6 recursos probablemente sería la mejor solución.
En términos de usar uno o varios CDN, no sería un problema dependiendo de cuántos componentes está descargando desde el mismo nombre de host, de acuerdo con este artículo de Yahoo UI Team , HTTP / 1.1 sugiere que los navegadores deberían limitar las descargas paralelas a dos por nombre de host. Por lo tanto, usar múltiples fuentes CDN, es, diferentes nombres de host debe ser una buena práctica.
Tal vez en el caso de usar componentes relacionados para evitar accidentalmente la falta de coincidencia de la versión como angular y angular-router, por ejemplo, es posible que desee usar el mismo CDN, pero si la descarga por nombre de host aumenta, se crearán fugas de carga de la misma manera (al menos para los navegadores que siguen la sugerencia de especificación).
El uso de un CDN es definitivamente una buena práctica para aumentar el rendimiento de carga de su sitio web. Sin embargo, debe considerar el uso de los CDN más populares que pueda encontrar, ya que aumentaría las posibilidades de obtener una versión en caché de los archivos que está utilizando de un sitio diferente que usa el mismo archivo, lo que aumentaría aún más el rendimiento de carga del archivo. sitio web.
Como @JeffPuckett señaló en los comentarios, los navegadores tienen un límite más alto de descarga simultánea por servidor / proxy en la actualidad:
Firefox 2: 2 Firefox 3+: 6 Opera 9.26: 4 Opera 12: 6 Safari 3: 4 Safari 5: 6 IE 7: 2 IE 8: 6 IE 10: 8 Chrome: 6
Ref .: https://.com/a/985704/4488121
La mejor práctica es utilizar tanto CDN como alternativa (archivos locales). Para responder a su pregunta, debe usar varias rutas CDN como si un CDN estuviera caído, al menos el resto está funcionando. Para el CDN hacia abajo, los fallbacks entrenarán.
En pocas palabras, es la mejor práctica que sigo en mis proyectos.
Me temo que no hay una respuesta de bala de plata a esta pregunta, como suele ocurrir. Aquí están mis 2 centavos. En oposición a centrarme en la cantidad de conexiones y navegadores / estándares simultáneos, quiero verlo desde una perspectiva diferente.
Lo que más importa tanto para sus usuarios como para su servidor es el tiempo de carga de la página y la disponibilidad del servicio. El tiempo de carga más rápido se carga desde el caché. Cuantos más usuarios utilicen un archivo específico de un CDN en particular , más posibilidades habrá de que el caché llegue.
Basado en este objetivo, tiene sentido
- Cargue las bibliotecas populares de los CDN populares, que, según la lista de bibliotecas, pueden ser el mismo CDN o CDN diferentes. Yo diría que esa cantidad de conexiones HTTP paralelas de un navegador es un argumento secundario.
- Únase y minimice las secuencias de comandos personalizadas y rara vez utilice bibliotecas de terceros en tan pocos archivos como sea posible (por ejemplo, CSS único y JS único) y cargue desde su propio host o CDN propio (si tiene toneladas de usuarios procedentes de diferentes ubicaciones o incluso continentes) CDN probablemente no sea un lujo para ti.
- Si los scripts basados en CDN no se cargaron desde CDN por cualquier motivo, retroceda a una copia local.
- Si tiene esa opción, seleccione la versión más utilizada de las bibliotecas, que probablemente no sea la más reciente.
Yo categorizaría las bibliotecas para las que puede encontrar CDN y estadísticas de uso para ser popular, otras, no tanto, aunque puede decidir qué alojar localmente basándose en otras recommendations .
Para las estadísticas, es posible que desee utilizar algo como w3techs:
La selección entre "pocos sitios con mucho tráfico" y "muchos sitios con poco tráfico" se puede realizar en base a algunas conjeturas acerca de la audiencia de su sitio web, pero si desea asegurarse, puede intentar medir la proporción de aciertos de caché. No es sencillo, pero aquí tenemos una idea .
Ahora, para las versiones, debe tener una opción para cambiar las versiones. Si decide optar por la primera opción de "pocos sitios de alto tráfico", definitivamente vale la pena verificar qué versión de la biblioteca se encuentra en el CDN que utilizan. De lo contrario, para la opción "muchos tráfico bajo", la versión más popular es preferible. La misma tecnología debe tener statistics .
Puede parecer un gran problema, pero se hace con poca frecuencia (si no es así una vez), ya que las estadísticas tienden a cambiar muy lentamente.
Podrías usar cdn fácilmente para obtener datos
Una buena pregunta para comenzar a preguntar ahora que la mayoría de los navegadores son compatibles con HTTP2 es: ¿mi CDN es compatible con HTTP2? Si es así, es probable que canalizar esas solicitudes a través de 1 CDN sea más rápido. También podría guardar búsquedas de DNS si los otros CDN no están en caché. Si la CDN es compatible con la función de inserción, también podría aumentar la velocidad, ya que muchas de esas bibliotecas requieren múltiples archivos.