Estoy usando jQuery en varios de mis sitios web y aunque uso un CDN para servirlo, simplemente no tiene sentido que el visitante descargue jQuery cada vez. jQuery debe ser el marco de JavaScript más utilizado en el mundo, ¿no tendría más sentido si los navegadores solo lo tienen instalado de forma predeterminada?
De esa forma, millones de veces al día se podría evitar una descarga de jQuery. Ya sea desde los propios sitios web de las personas o desde los CDN.
Todo lo que realmente se necesitaría es algún tipo de afirmación como:
<!--[if jQuery gt 11]>
¿Existe algo que me ayudará a evitar que los usuarios hagan el viaje a la CDN si ya tienen jQuery en su caché desde otro sitio?
Respuestas:
Si sirve jQuery desde un CDN popular como las Bibliotecas Hospedadas de Google o cdnjs , no se volverá a descargar si su visitante ha estado en un sitio que hace referencia a él desde la misma fuente (siempre que la versión en caché no haya caducado).
jQuery es una biblioteca popular, tal como usted dice, pero no es probable que lo incluya en el navegador por varias razones:
fuente
JQuery no solo no es la única biblioteca JS popular, sino que un navegador tendría que incluir múltiples versiones. El CDN de Google actualmente enumera: 42 versiones de jQuery; 44 versiones de jQuery UI; 6 versiones de jQuery Mobile.
Es mejor permitir que los desarrolladores web definan qué versión de una biblioteca descargar en función de los requisitos de su sitio web. Si usa una versión actual de producción de jQuery en su sitio web y la carga desde un CDN más popular, entonces hay una buena posibilidad de que sus visitantes ya la tengan en caché de todos modos.
fuente
El navegador es el motor, no es el deber del diseñador del motor averiguar qué tipo de combustible y piezas adicionales va a poner en su automóvil e incluirlo por usted. Si hicieran esto, los navegadores serían un gran bloatware porque la siguiente pregunta sería "¿por qué solo jQuery?", Y terminaríamos manteniendo depósitos de dependencia.
Además, ¿incluiremos todas las versiones? ¿Qué pasa si alguien quisiera usar una versión personalizada? ¿Qué pasa si a alguien no le gustaría usar esa biblioteca? ¿Con qué frecuencia fusionarán y lanzarán los últimos lanzamientos? ¿Terminaremos con diferentes navegadores con diferentes versiones de jQuerys? Ni siquiera pueden implementar funcionalidades estandarizadas de HTML, CSS y JavaScript. ¿Qué sucede si uno de los mantenedores del navegador no va a incluir una biblioteca o su versión específica?
Los navegadores proporcionan bloques de construcción y un entorno para que usted cree una solución que no esté terminada.
Poner jQuery en el navegador no hará que su sitio se cargue a toda velocidad porque hoy en día este no es el mayor cuello de botella, sin embargo, podemos estar de acuerdo en que jQuery es una biblioteca innecesariamente grande, pero su propósito nunca fue ser una biblioteca rápida (considerando banda ancha). Hay muchas otras bibliotecas que fueron diseñadas específicamente para la carga rápida y para ser livianas como Zepto .
Si realmente le preocupa el tamaño de jQuery y el uso de ancho de banda, entonces no lo use. ¿Alguna vez has oído hablar de Vanilla JS ? ¡Es una biblioteca aún más popular que es utilizada literalmente por casi todo el mundo, incluido jQuery! ¡Y ya cumplió su sueño porque está incluido en todos los navegadores!
fuente
Una razón para usar una biblioteca como jQuery es la compatibilidad.
Los navegadores se han vuelto más compatibles con los estándares, pero al usar la biblioteca jquery, usted se suministra a sí mismo, no tiene que preocuparse por las diferencias entre las familias y las versiones del navegador
Al suministrar el jquery usted mismo, está seguro de tener una API constante.
Si tenemos el jquery integrado en el navegador, debe verificar qué versión tiene el usuario, y volveremos al examen del navegador y "Este sitio se ve mejor en ..."
Por lo tanto, tener la compilación jquery en el navegador no tiene sentido.
Además, el almacenamiento en caché funciona, por lo que incluso si el usuario aún no tiene su versión jquery, solo necesita descargarse una vez.
fuente
De hecho, creo que los que responden aquí no entienden que la respuesta a la pregunta es que los navegadores probablemente deberían incluir las bibliotecas más utilizadas, los polyfills, etc. en el lado del cliente.
Como dice la persona que hace la pregunta, los comentarios condicionales podrían usarse para garantizar que aquellos que usan navegadores que no incluyen jquery reciban una versión adecuada.
Jquery también incluye su propio soporte de compatibilidad con versiones anteriores a través de la migración, lo que permite comentarios condicionales para dar soporte retro a alguien con una versión empaquetada de una biblioteca jquery anterior sin descargar una biblioteca completamente nueva.
El argumento a favor de incluirlos en los navegadores no se trataría solo de la experiencia y el costo del usuario, sino también del planeta en el que vivimos. El uso de datos es una gran contribución a la contaminación global, y garantizar que se minimice la transferencia innecesaria de datos podría tener un efecto dramático en nuestra huella de carbono.
En esencia, en aras de agregar unos pocos megabytes adicionales de relleno de código en un navegador empaquetado: los mismos datos se transfieren innecesariamente miles de millones de veces al día.
Eso empeora la experiencia del usuario para todos en Internet. Y cuesta a las grandes empresas grandes cantidades de dinero.
Como desarrollador, solo crearía los retrocesos necesarios como lo hacemos actualmente para IE, etc., entonces, ¿cuál es el problema? ¿Probablemente debería incluirse seguramente?
fuente