Frage

Ich schreibe jQuery für eine Seite, die a ist komplexes Durcheinander vieler DOM-Elemente (Ich habe keine Kontrolle darüber).Der primäre Zielbrowser ist IE7, und ich habe Bedenken hinsichtlich der Geschwindigkeit seiner JavaScript-Engine.Skripte, die ich bereits geschrieben habe, sind verzögert und wurden nach besten Kräften optimiert.

Ich könnte ein Skript schreiben, das einfach zu warten und zu verstehen ist, zum Beispiel mit einem einzigen contains Stellungnahme.Oder ich kann der Engine helfen, indem ich die DOM-Suche durch dieses unordentliche HTML eingrenze, was zu mehr Komplexität führt.

Sollte mir beim Schreiben von jQuery-Skripten die Geschwindigkeit der JavaScript-Engine des Browsers wichtig sein?

War es hilfreich?

Lösung

jQuery ist in JavaScript geschrieben. So sollen Sie über die Geschwindigkeit des JavaScript-Engine sorgen, wie es auch die Geschwindigkeit Ihres jQuery-Code betroffen ist.

Es gibt viele Tipps und Tricks, wie effizienten jQuery-Code zu schreiben. Das Hauptprinzip ist zu verstehen, wie jQuery funktioniert, wie die Wähler in Abfragen übersetzt, die die Elemente aus dem DOM und so weiter wählen.

Andere Tipps

Versuchen Methoden nativer JavaScript anstelle von jQuery Methoden, wann immer möglich, und Sie werden bemerken, im Allgemeinen eine erhebliche Verbesserung der Geschwindigkeit, vor allem im Internet Explorer. IE-JS-Rendering-Engine wird SLLLOOOOWWW im Vergleich zu anderen nicht-sucky Browsern .

Zum Beispiel hatte ich einen AJAX-Skript, das fein in FF / Safari lief aber lief wie gefrorene Melasse im Internet Explorer. Stellt sich die Entwickler aus, die schrieb es die starke Nutzung von jQuery $ .each () Methode, um Daten aus einer großen JSON-Datei vorgenommen. Ich schrieb das Drehbuch Standard JS verwenden für () in einer Schleife statt, und einige Geschwindigkeitstests laufen auf es danach zeigte, dass für die Verwendung von () war mehr als zwanzig mal schneller.

Ja, aber man sollte nicht über sie besessen:)

„Contains“ könnte relativ langsam sein, da ich nicht glaube, dass das Dokumentmodell in irgendeiner Weise dadurch indiziert wird, welcher Text in den Elementen erscheint.

Allerdings bin ich mir nicht sicher, ob es sinnvoll ist, zu versuchen, etwas zu überarbeiten und aus Optimierungsgründen zu optimieren.Entscheiden Sie sich für das Einfachste, was funktioniert, testen Sie es und optimieren Sie es dann, wenn Sie ein Problem haben.

Ich habe nicht in eine einzige Instanz laufen, wo die Vorteile der Verwendung von JQuery oder ein Plugin (Cross-Browser-Kompatibilität, äußerst nützliche Funktionen) durch Rückgänge in der Geschwindigkeit aufgewogen werden. Und ich arbeite mit ziemlich großen Web-Seiten manchmal.

Wie auch immer, der einzige Weg, Sie wissen wollen, ist, es zu versuchen. Schreiben Sie Ihren Code in die vernünftigste Art und Weise möglich, auf den ersten. Wenn es zu langsam ist, dann kann man es optimieren suchen.

Optimierung DOM Traversal
http://www.learningjquery.com/2006/12/ Schnell Spitze-Optimierung-dom-Traversal

Nein, sollten Sie es sich nicht, weil es nicht sollte beeinflussen, wie Sie Code schreiben.

Das heißt, Sie immer effizient Javascript schreiben sollte, sowohl weil es nur gute Praxis, und weil für die meisten Websites haben Sie keine Ahnung, welchen Browser ein bestimmte Benutzer ausgeführt wird, so dass Sie auch kann das Schlimmste annehmen.

Ja, Sie sollten besorgt sein, aber zum Glück ist das jQuery-Team genauso betroffen:

Letzte Änderungen an jQuery Internals (Schauen Sie sich den letzten zwei Folien)

Sie optimieren nicht über, sondern optimieren so viel, wie Sie benötigen.

Wenn es langsam ist, dann haben Sie wirklich keine andere Wahl, als in dorthin zu gehen und Hilfe jquery aus. Aber dann, wenn es nicht ist, dann warum die Mühe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top