¿Podrían JQuery y herramientas similares integrarse en la instalación del navegador?


19

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?


3
Cuando una función particular de JavaScript se vuelve tan omnipresente que se considera necesaria en todas partes, se agrega al lenguaje. Array.prototype.forEach, Array.prototype.indexOf, Object.createSon todos ejemplos de código que consiguió a empujones en el motor JavaScript en sí.
zzzzBov

¿Estoy seguro de que Chrome presentará una solución que ofrezca al usuario final la opción de instalar una extensión con la capacidad de almacenar en caché los archivos jQuery / javascript necesarios cuando se renderiza un sitio por primera vez? Si el usuario rechaza, fuerza la solicitud como de costumbre. La opción "no volver a preguntar" podría deshabilitar esta opción. Podría haber un área en la configuración donde el usuario final puede seleccionar qué archivos js almacenar en la memoria caché del navegador utilizando una simple lista de casillas de verificación. Siempre se enviarán js personalizados al cliente, pero parece que eliminar los archivos js que se envían al cliente por solicitud optimizaría p
yardpenalty el

1
¿Qué versión sugeriría que incluyeran? ¿Qué hay de la próxima semana?
pdr

@pdr - vieja pregunta, con muchas respuestas negativas por hacer esto. PERO fácilmente podría agrupar la última versión con la versión del navegador y permitir que el código de usuario recurra a solicitar una versión más nueva de CDN si es necesario. Con cambios importantes como JQuery 2.0, podría tener ambos y permitir que el código elija. Todo un punto mudo aunque realmente :)
ozz

Respuestas:


15

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.


1
gracias Dan, ¿algún enlace que pueda leer sobre lo que describes?
ozz

1
Yo diría que la necesidad de descargar megabytes sobre megabytes de bibliotecas comunes cada vez que solicito una página va en contra de otra filosofía web fundamental de mantener las páginas web pequeñas y accesibles. Muchas personas todavía usan módems y conexiones satelitales lentas después de todo.
maple_shaft

44
Una operación de endodoncia haría que el DOM API fuera más agradable ...
Donal Fellows

1
@maple_shaft, ese es un argumento algo engañoso. La distribución de jQuery minimizada es de 31K. Si bien es cierto que existen páginas web que cargan una gran cantidad de bibliotecas diferentes, la pregunta es específica de jQuery, y no hay ninguna explicación para los programadores malos.
Adam Crossland

16

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.

Luego, los sitios podrían comprobar primero "local", antes de CDN, antes de finalmente descargar de forma predeterminada el servidor del sitio web.

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.


Gracias. Sí, no estaba claro en mi pregunta. Estoy BIEN consciente de que eso es lo que sucede. Estoy hablando de eliminar la necesidad de incluso la primera descarga. Actualizaré la pregunta.
ozz

gracias por todas sus razones para NO incluir en la configuración del navegador :-)
ozz

66
No puede eliminar la necesidad de la primera descarga. Si jQuery se incluye en la instalación, que se descargaron por primera vez cuando la persona que descarga el ejecutable de instalación (continuación se descarga de nuevo a través de las actualizaciones cuando se libera una nueva versión de jQuery).
Arseni Mourzenko

2
No elimina el impacto en el rendimiento, pero lo mueve desde la visita del primer sitio web a la descarga del ejecutable de configuración, lo que significa que, en general, esto es lo contrario de un ahorro de rendimiento. Tampoco elimina la necesidad de CDN si desea admitir navegadores antiguos y navegadores no actualizados desde el lanzamiento de la última versión de JQuery.
Arseni Mourzenko

1
@ Todos Si desea discutir esto más a fondo, tómelo para chatear.
maple_shaft

5

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.


5

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 .


gracias Adam, sí, conozco el primer escenario de descarga, caché. Mis pensamientos son para reemplazar eso también. JQuery fue solo un ejemplo, pero estoy de acuerdo con sus pensamientos sobre la competencia, parece que esta podría ser la razón principal por la que sugiero que no suceda. Entonces tendría diferentes navegadores con diferentes conjuntos de componentes "predeterminados", etc.
ozz

He actualizado la pregunta para mencionar que soy consciente del almacenamiento en caché :-)
ozz
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.