O JQuery e ferramentas similares poderiam ser incorporados à instalação do navegador?


19

Depois de ler outra pergunta sobre JQuery e CDN, é possível que ferramentas como JQuery "acompanhem" o navegador, reduzindo / eliminando a necessidade do primeiro download de uma CDN ou de seu próprio servidor host.

Os arquivos JQuery especificamente são muito pequenos, portanto você pode facilmente ter um número (todos?) Das diferentes versões como parte da instalação do navegador. Agora, é justo, isso aumentaria a pegada de instalação e o tempo de download do próprio navegador.

Em seguida, os sites poderiam verificar "local" primeiro, antes da CDN (que é armazenada em cache), antes de finalmente fazer o download no próprio servidor do site.

Se isso é possível, já foi feito e, se não, por que não foi feito?


3
Quando uma função JavaScript específica se torna tão onipresente que é vista como necessária em qualquer lugar, é adicionada à linguagem. Array.prototype.forEach, Array.prototype.indexOf, Object.createSão todos exemplos de código que foi empacotado para o motor de JavaScript em si.
precisa saber é o seguinte

Estou certo de que o Chrome apresentará uma solução que ofereça ao usuário final a opção de instalar uma extensão com a capacidade de armazenar em cache os arquivos jQuery / javascript necessários quando um site for renderizado pela primeira vez? Se o usuário recusar, força a solicitação como de costume. A opção "não me pergunte novamente" pode desativar esta opção. Pode haver uma área nas configurações em que o usuário final pode selecionar quais arquivos js armazenar no cache do navegador usando uma lista simples da caixa de seleção. Sempre haverá js personalizados enviados ao cliente, mas parece que a eliminação dos arquivos js enviados ao cliente por solicitação otimizaria p
yardpenalty

1
Qual versão você sugere que eles incluam? E na próxima semana?
Pd 27/01

@pdr - pergunta antiga, com muitas respostas negativas para fazer isso. MAS você pode facilmente agrupar a versão mais recente com a liberação do navegador e permitir que o código do usuário volte a solicitar uma versão mais nova da CDN, se necessário. Com as alterações mais recentes, como o JQuery 2.0, você pode ter os dois e permitir que o código escolha. Tudo um ponto mute embora realmente :)
ozz

Respostas:


15

Não há razão tecnológica para que eles não pudessem. No entanto, não é necessário e é contra a filosofia fundamental da web. Não é necessário, porque você pode conseguir quase a mesma coisa com um cabeçalho expirado no futuro distante. Isso é contra a filosofia da Web, porque faz com que haja uma autoridade centralizada, de cima para baixo, na qual as bibliotecas devem / não devem ser agrupadas com o navegador.

Edit: As bibliotecas JS estão lá, principalmente, para facilitar o tratamento do DOM. Não acho que agrupar bibliotecas de terceiros com o navegador seja o caminho certo para tornar a API do DOM mais agradável.


1
obrigado Dan - algum link que eu possa ler sobre o que você descreve?
ozz

1
Eu argumentaria que a necessidade de baixar megabytes e megabytes de bibliotecas comuns toda vez que solicito uma página vai contra outra filosofia fundamental da web de manter as páginas pequenas e acessíveis. Afinal, muitas pessoas ainda usam modems e conexões lentas via satélite.
Maple_shaft

4
Uma operação de canal radicular faria o API DOM mais agradável ...
Donal Fellows

1
@ maple_shaft, esse é um argumento um tanto ilusório. A distribuição minificada do jQuery é 31K. Embora certamente haja páginas da Web que carregam um número louco de bibliotecas diferentes, a questão é específica para o jQuery, e não há explicação para programadores ruins.
Adam Crossland

16

Na verdade, o que você está descrevendo já existe há anos. Isso se chama cache . E está disponível não apenas para JQuery, mas para tudo o que seu navegador pode baixar.

Em seguida, os sites poderiam verificar "local" primeiro, antes da CDN, antes de finalmente fazer o download do próprio site.

É exatamente isso que todo navegador faz. Ele verifica primeiro o cache local e, em seguida, baixa um da CDN, se necessário. Com a configuração de cache adequada, não há até mesmo ida e volta ao servidor (para verificar a versão mais recente) por meses.

A inclusão do JQuery na configuração do navegador:

  • Adicione complexidade desnecessária ao aplicativo e configuração do navegador,

  • Adicione complexidade desnecessária ao processo de atualização,

  • Aumente o número de atualizações para manter a versão atualizada do JQuery, mesmo para pessoas que não precisam,

  • Acrescente confusão: por que o JQuery e não o Prototype, ou alguma outra estrutura, imagem, arquivo CSS etc.?

  • etc.

Aumentar a complexidade de um produto de software sem benefício em termos de recursos, desempenho etc. é uma péssima idéia.


Obrigado. Sim, eu não estava claro na minha pergunta. Estou bem ciente de que é o que acontece. Estou falando de eliminar a necessidade mesmo do primeiro download. Vou atualizar a pergunta.
ozz

obrigado por todas as suas razões para não incluir na configuração do navegador :-)
ozz

6
Você não pode eliminar a necessidade do primeiro download. Se o JQuery estiver incluído na configuração, ele será baixado pela primeira vez quando a pessoa fizer o download do executável da instalação (ele será baixado novamente através de atualizações quando uma nova versão do JQuery for lançada).
Arseni Mourzenko

2
Ele não elimina o impacto no desempenho, mas o move da visita do primeiro site para o download do executável da instalação, o que significa que, no geral, é o oposto de uma economia no desempenho. Ele também não elimina a necessidade da CDN se você deseja suportar navegadores mais antigos e navegadores não atualizados desde o lançamento da última versão do JQuery.
Arseni Mourzenko 14/03/12

1
@All Se você quiser discutir mais sobre isso, leve-o para conversar.
Maple_shaft

5

Não esqueça que o jQuery é uma biblioteca js, parece que se tornou a de fato e vista como uma panacéia (a ponto de se tornar digna de nota no SO), mas é apenas uma biblioteca js.

Tudo o que é padronizado para script (EMCAScript) já está incluído no navegador; qualquer outra coisa adicionada a outros navegadores se tornaria não padrão e você acabaria com os problemas entre navegadores de navegadores não padrão (como o modelo de evento do IE ) que influenciam parte do motivo pelo qual bibliotecas como o jQuery foram criadas em primeiro lugar.

Resposta curta: eles poderiam ser incluídos, mas não deveriam.


5

O cache do navegador fornece algo muito parecido com o que você está falando. Deve acontecer que o jQuery ou qualquer outra biblioteca JS seja baixado uma vez e depois recuperado do cache em solicitações adicionais.

Embora o jQuery possa ser a biblioteca JavaScript mais onipresente, ela não é a única e parece-me que torná-lo um componente instalado do navegador seria ruim para o ecossistema JS. A concorrência é saudável e geralmente leva à inovação, e nós, desenvolvedores e usuários de software, não seríamos bem atendidos, dando ao jQuery uma posição especial.

Depois de levar em conta o cache, a vantagem que você ganha é muito, muito mínima. A versão reduzida do jQuery é de apenas 31K. Isso não é lógica para mudar nada .


obrigado Adam - sim, eu sei o primeiro download, cenário de cache. Meus pensamentos são para substituir isso também. O JQuery foi apenas um exemplo, mas eu concordo com seus pensamentos sobre a concorrência. Parece que esse pode ser o principal motivo pelo qual eu sugiro que não aconteça. Você teria então têm diferentes navegadores com diferentes conjuntos de componentes de "default" etc.
ozz

Atualizei a pergunta para mencionar que estou ciente do armazenamento em cache :-)
ozz
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.