Domanda

Sto scrivendo jQuery per una pagina che è un complesso pasticcio di molti elementi DOM (non ho alcun controllo su questo). Il browser obiettivo primario è IE7 , e ho preoccupazioni per la velocità del suo motore JavaScript. Gli script che ho già scritto sono lag e sono stati prestazioni a punto al meglio delle mie capacità.

ho potuto scrivere script che è semplice da mantenere e capire, ad esempio, utilizzando un singolo contains dichiarazione. O posso aiutare il motore restringendo il campo di ricerca DOM attraverso questo disordinato HTML con conseguente maggiore complessità.

Devo preoccupano la velocità del motore JavaScript del browser durante la scrittura di script jQuery?

È stato utile?

Soluzione

jQuery è scritto in JavaScript. Così si dovrebbe preoccuparsi della velocità del motore JavaScript, poiché colpisce anche la velocità del codice jQuery.

Ci sono un sacco di consigli e suggerimenti su come scrivere codice jQuery più efficiente. Il principio fondamentale è quello di capire come funziona jQuery, come i selettori sono tradotte in query che selezionano gli elementi del DOM e così via.

Altri suggerimenti

tenta di utilizzare metodi nativi Javascript invece di metodi di jQuery, quando possibile e sarete generalmente nota un miglioramento della velocità notevole, soprattutto in IE. motore di rendering JS di IE è SLLLOOOOWWW rispetto ad altri browser non sucky .

Per esempio, ho avuto uno script AJAX che era in esecuzione bene in FF / Safari, ma correvo come melassa congelati in IE. Risulta lo sviluppatore che ha scritto il metodo () ha fatto un uso pesante di $ .each di jQuery per ottenere i dati da un file di grandi dimensioni JSON. Ho riscritto la sceneggiatura di utilizzare standard di JS per () loop, invece, e l'esecuzione di alcuni test di velocità su di esso in seguito ha dimostrato che l'uso di () è stato più di venti volte più veloce.

Sì, ma non si dovrebbe ossessionare su di esso:)

Contiene potrebbe essere relativamente lenta, come non credo che il modello di documento viene indicizzato in alcun modo da quello che appare il testo all'interno degli elementi.

Tuttavia, non sono sicuro che sia saggio cercare di overengineer qualcosa e ottimizzare per optimizings bene. Andare per la cosa più semplice che funziona, prova e quindi di ottimizzare se avete un problema.

Non ho incontrato un solo caso in cui i vantaggi di utilizzare JQuery o un plugin (compatibilità cross-browser, funzionalità estremamente utile) sono compensati da diminuzioni nella velocità. E io lavoro con abbastanza grandi pagine web a volte.

In ogni caso, l'unico modo che si sta per sapere è di provarlo. Scrivere il codice nel modo più sensato possibile in un primo momento. Se è troppo lento, allora si può guardare per ottimizzarlo.

Ottimizzazione DOM Traversal
http://www.learningjquery.com/2006/12/ quick-tip-ottimizzazione-dom-traversal

No, non si dovrebbe cura su di esso, perché non dovrebbe influenzare il modo di scrivere codice.

In altre parole, si dovrebbe sempre scrivere efficiente Javascript, sia perché è solo una buona pratica, e perché per la maggior parte dei siti che non hanno idea di ciò che il browser di qualsiasi particolare utente è in esecuzione, in modo si può anche pensare al peggio.

Sì, si dovrebbe essere interessato, ma per fortuna, il team di jQuery è altrettanto preoccupato:

Cambiamenti recenti a jQuery Internals (Scopri ultime due slitte)

Non più di ottimizzare, ma ottimizzare quanto è necessario.

Se è lento, allora davvero non hanno altra scelta che andare lì e aiuto jquery fuori. Ma allora se non lo è, allora perché preoccuparsi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top