Después de leer otra pregunta sobre JQuery y CDN, ¿es factible que herramientas como JQuery "vengan" con el navegador, reduciendo / eliminando así la necesidad de la primera descarga desde un CDN o desde su propio servidor host.
Los archivos JQuery específicamente son bastante pequeños, por lo que fácilmente podría tener un número (¿todos?) De las diferentes versiones como parte de la instalación de un navegador. Ahora lo suficientemente justo, esto aumentaría la huella de instalación, el tiempo de descarga para el navegador en sí.
Luego, los sitios podrían comprobar primero "local", antes de CDN (que luego se almacena en caché), antes de finalmente descargar de forma predeterminada el servidor del sitio web.
Si esto es factible, ¿se ha hecho, y si no, por qué no se ha hecho?
fuente
Array.prototype.forEach
,Array.prototype.indexOf
,Object.create
Son todos ejemplos de código que consiguió a empujones en el motor JavaScript en sí.Respuestas:
No hay razón tecnológica por la que no puedan. Sin embargo, no es necesario y va en contra de la filosofía fundamental de la web. No es necesario, porque puede lograr casi lo mismo con un encabezado que caduca en un futuro lejano. Va en contra de la filosofía de la web porque hace que exista una autoridad centralizada de arriba hacia abajo sobre la cual las bibliotecas deben / no deben agruparse con el navegador.
Editar: las bibliotecas JS están allí, principalmente, para facilitar el manejo del DOM. No creo que agrupar bibliotecas de terceros con el navegador sea la forma correcta de hacer que la API DOM sea más agradable.
fuente
En realidad, lo que estás describiendo ya existe desde hace años. Se llama almacenamiento en caché . Y está disponible no solo para JQuery, sino para todo lo que su navegador pueda descargar.
Esto es exactamente lo que hace cada navegador.Primero verifica el caché local, luego descarga uno de CDN si es necesario. Con la configuración de caché adecuada, incluso no hay ida y vuelta al servidor (para verificar si hay una versión más reciente) durante meses.
Incluir JQuery en la configuración del navegador:
Agregue complejidad innecesaria a la aplicación y configuración del navegador,
Agregue complejidad innecesaria al proceso de actualización,
Aumente la cantidad de actualizaciones para mantener la versión actualizada de JQuery, incluso para las personas que no la necesitan,
Agregue confusión: ¿por qué JQuery y no Prototype, o algún otro marco, imagen, archivo CSS, etc.?
etc.
Incrementar la complejidad de un producto de software sin beneficio en términos de características, rendimiento, etc. es una idea extremadamente mala.
fuente
No olvide que jQuery es una biblioteca js, parece haberse convertido en la de facto y visto como una panacea (hasta el punto de ser memerable en SO), pero es solo una biblioteca js.
Todo lo que está estandarizado para scripting (EMCAScript) es incluido en el navegador, cualquier otra cosa agregada a otros navegadores se volvería no estándar y terminaría con los problemas de navegador cruzado para navegadores no estándar (como el modelo de evento de IE ) que influyen en parte en la razón por la cual las bibliotecas como jQuery se han creado en primer lugar.
Respuesta corta: podrían incluirse, pero no deberían.
fuente
El almacenamiento en caché del navegador proporciona algo muy parecido a lo que está hablando. Debería darse el caso de que jQuery o cualquier otra biblioteca JS se descargarían una vez y luego se recuperarían de la memoria caché en futuras solicitudes.
Si bien jQuery puede ser la biblioteca de JavaScript más omnipresente, no es la única y me parece que convertirla en un componente instalado del navegador sería perjudicial para el ecosistema JS. La competencia es saludable y generalmente conduce a la innovación, y nosotros, los desarrolladores y los usuarios de software, no estaríamos bien atendidos si le damos a jQuery una posición especial.
Una vez que tiene en cuenta el almacenamiento en caché, la ventaja que obtiene es muy, muy mínima. La versión minificada de jQuery es solo 31K. Esa no es razón para cambiar nada .
fuente