JQuery e strumenti simili potrebbero essere integrati nell'installazione del browser?


19

Dopo aver letto un'altra domanda su JQuery e CDN, è possibile che strumenti come JQuery "arrivino" con il browser, riducendo / eliminando così la necessità del primo download da una CDN o dal proprio server host.

I file JQuery in particolare sono piuttosto piccoli, quindi potresti facilmente avere un numero (tutto?) Di diverse versioni come parte di un'installazione del browser. Ora abbastanza giusto, questo aumenterebbe l'impronta dell'installazione, il tempo di download per il browser stesso.

Quindi i siti potrebbero controllare prima "localmente", prima di CDN (che poi memorizza nella cache), prima di finire per impostazione predefinita a scaricare dal server stesso.

Se questo è fattibile, è stato fatto e, in caso contrario, perché non è stato fatto?


3
Quando una particolare funzione JavaScript diventa così onnipresente che viene vista come necessaria ovunque, viene aggiunta alla lingua. Array.prototype.forEach, Array.prototype.indexOf, Object.createSono tutti esempi di codice che ha ottenuto in bundle nel motore JavaScript in sé.
zzzzBov

Sono sicuro che Chrome fornirà una soluzione che offre all'utente finale la possibilità di installare un'estensione con la possibilità di memorizzare nella cache i file jQuery / javascript necessari al primo rendering di un sito? Se l'utente rifiuta, impone la richiesta come al solito. L'opzione "non chiedermelo più" potrebbe disabilitare questa opzione. Potrebbe esserci un'area nelle impostazioni in cui l'utente finale può selezionare quali file js memorizzare nella cache del browser utilizzando un semplice elenco di caselle di controllo. Ci saranno sempre js personalizzati inviati al client, ma sembra che l'eliminazione dei file js inviati al client per richiesta ottimizzerebbe p
yardpenalty il

1
Quale versione suggeriresti di includere? E la prossima settimana?
pdr

@pdr - vecchia domanda, con molte risposte al negativo per averlo fatto. MA potresti facilmente raggruppare la versione più recente con la versione del browser e consentire al codice utente di tornare a richiedere una versione più recente da CDN, se necessario. Con le ultime modifiche come JQuery 2.0, potresti avere entrambe e consentire al codice di scegliere. Tutto un punto muto però davvero :)
ozz

Risposte:


15

Non c'è motivo tecnologico per cui non possano. Tuttavia, non è necessario ed è contrario alla filosofia fondamentale del web. Non è necessario, perché è possibile ottenere quasi la stessa cosa con un header di scadenza molto lontano. È contro la filosofia del web perché causa la presenza di un'autorità centralizzata dall'alto verso il basso su cui le librerie dovrebbero / non dovrebbero essere raggruppate con il browser.

Modifica: le librerie JS ci sono, principalmente, per semplificare la gestione del DOM. Non credo che raggruppare librerie di terze parti con il browser sia il modo giusto per rendere più piacevole l'API DOM.


1
grazie Dan - qualche link che posso leggere su ciò che descrivi?
ozz

1
Direi che la necessità di scaricare megabyte su megabyte di librerie comuni ogni volta che richiedo una pagina va contro un'altra filosofia Web fondamentale di mantenere le pagine Web piccole e accessibili. Molte persone sono ancora su modem e connessioni satellitari lente dopo tutto.
maple_shaft

4
Un'operazione canalare renderebbe l'API DOM più piacevole ...
Donal Fellows

1
@maple_shaft, questo è un argomento piuttosto specioso. La distribuzione minimizzata di jQuery è 31K. Mentre è certamente il caso che ci siano pagine Web là fuori che caricano un numero folle di librerie diverse, la domanda è specifica per jQuery e non esiste una contabilità per programmatori scadenti.
Adam Crossland,

16

In realtà, quello che stai descrivendo esiste già da anni. Si chiama cache . Ed è disponibile non solo per JQuery, ma per tutto ciò che il tuo browser può scaricare.

Quindi i siti potrebbero controllare prima "localmente", prima di CDN, prima di scaricare automaticamente dal server del sito web.

Questo è esattamente ciò che fa ogni browser. Controlla prima la cache locale, quindi ne scarica una dalla CDN se necessario. Con un'adeguata configurazione della cache, non c'è nemmeno andata e ritorno al server (per verificare la versione più recente) per mesi.

Includere JQuery nell'impostazione del browser dovrebbe:

  • Aggiungi complessità inutili all'applicazione e alla configurazione del browser,

  • Aggiungi complessità inutili per aggiornare il processo,

  • Aumenta il numero di aggiornamenti per mantenere la versione aggiornata di JQuery, anche per le persone che non ne hanno bisogno,

  • Aggiungi confusione: perché JQuery e non Prototype, o qualche altro framework, immagine, file CSS, ecc.?

  • eccetera.

Aumentare la complessità di un prodotto software senza vantaggi in termini di funzionalità, prestazioni, ecc. È una pessima idea.


Grazie. Sì, non ero chiaro nella mia domanda. Sono ben consapevole che è quello che succede. Sto parlando di eliminare la necessità anche del primo download. Aggiornerò la domanda.
ozz

grazie per tutti i motivi per NON includere nella configurazione del browser :-)
ozz

6
Non è possibile eliminare la necessità del primo download. Se JQuery è incluso nel programma di installazione, viene scaricato per la prima volta quando la persona scarica il file eseguibile del programma di installazione (quindi viene nuovamente scaricato tramite gli aggiornamenti quando viene rilasciata una nuova versione di JQuery).
Arseni Mourzenko

2
Non elimina il calo delle prestazioni, ma lo sposta dalla visita del primo sito Web al download dell'eseguibile di installazione, il che significa che, nel complesso, questo è l'opposto di un salvataggio delle prestazioni. Non elimina la necessità di CDN né se si desidera supportare browser più vecchi e browser non aggiornati dalla versione dell'ultima versione di JQuery.
Arseni Mourzenko,

1
@Tutti Se vuoi discuterne ulteriormente, ti preghiamo di portarlo per chattare.
maple_shaft

5

Non dimenticare che jQuery è una libreria js, sembra essere diventata di fatto quella e vista come una panacea (al punto da diventare memorabile su SO), ma è solo una libreria js.

Tutto ciò che è standardizzato per gli script (EMCAScript) è già incluso nel browser, qualsiasi altra cosa aggiunta ad altri browser diventerebbe non standard e si finirebbero con i problemi cross-browser per browser non standard (come il modello di eventi IE ) che influenzano parte del motivo per cui librerie come jQuery sono state create in primo luogo.

Risposta breve: potrebbero essere inclusi, ma non dovrebbero.


5

La memorizzazione nella cache del browser fornisce qualcosa di molto simile a ciò di cui stai parlando. Dovrebbe essere il caso che jQuery o qualsiasi altra libreria JS venga scaricata una volta e quindi recuperata dalla cache su ulteriori richieste.

Mentre jQuery potrebbe essere la libreria JavaScript più diffusa, non è l'unica e mi sembra che renderlo un componente installato del browser sarebbe dannoso per l'ecosistema JS. La concorrenza è salutare e generalmente porta all'innovazione e noi sviluppatori e utenti di software non saremmo ben serviti dando a jQuery una posizione speciale.

Una volta presa in considerazione la memorizzazione nella cache, il vantaggio che si ottiene è molto, molto minimo. La versione ridotta di jQuery è solo 31 KB. Questa non è una logica per cambiare qualcosa .


grazie Adam - sì, conosco il primo download, scenario di cache. Il mio pensiero è di sostituire anche quello. JQuery è stato solo un esempio, ma sono d'accordo con i tuoi pensieri sulla concorrenza, sembra che questo potrebbe essere il motivo principale per cui suggerisco che ciò non accada. Avresti quindi diversi browser con diversi set di componenti "predefiniti" ecc.
ozz

Ho aggiornato la domanda per menzionare che sono a conoscenza della memorizzazione nella cache :-)
ozz
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.