Was ist der Unterschied zwischen Zepto und jQuery 2?


81

Es gibt diese zwei ähnlichen Projekte:

Zepto.js

Zepto ist eine minimalistische JavaScript-Bibliothek für moderne Browser mit einer weitgehend jQuery-kompatiblen API.

jQuery 2.0

jQuery 2.0 Beta: Hier ist Ihr Vorgeschmack auf die Zukunft, eine jQuery, die schneller und kleiner sein kann, ohne IE 6, 7 oder 8 unterstützen zu müssen. Sie ist eine gute Wahl für plattformspezifische HTML-Anwendungen.

Geht es nur um Leistung oder verfolgen sie unterschiedliche Ansätze?


3
Falls Sie jemals versuchen, von jQuery zu Zepto zu wechseln: blog.pamelafox.org/2011/11/porting-from-jquery-to-zepto.html
Aurelio

37
Dies ist eine nützliche, interessante und relevante Frage zu einem bestimmten Programmierproblem. Warum war es geschlossen? Es ist nicht "was besser ist", sondern "was sind die Vorbehalte bei der Verwendung"
Benjamin Gruenbaum

Antworten:


52

Der Hauptunterschied zwischen Zepto. Darüber hinaus ist die Unterstützung von Zepto für Browser, die IE<10entweder fehlen oder nicht garantiert sind, folgende Zielplattformen :

  • Safari 5+ (Desktop)
  • Chrome 5+ (Desktop)
  • Mozilla Firefox 4+
  • iOS 4+ Safari
  • Android 2.2+ Browser
  • Andere WebKit-basierte Browser / Laufzeiten
  • webOS 1.4.5+ Browser
  • BlackBerry Tablet OS 1.0.7+ Browser
  • Amazon Silk 1.0+
  • Opera 10+
  • Internet Explorer 10+

14
jquery 2 ist ~ 30 kb und zepto ist ~ 10 kb, wenn beide gezippt und minimiert sind. Nicht gezippt, jquery 2 ist immer noch ~ 80kb und zepto ist ~ 30kb.
Asparagino

-1. Wie Asparagino betont, sind die Zahlen von MHD falsch. Seine Antwort ist gültig.
Jason

4
Sowohl Zepto als auch jQuery unterstützen kundenspezifische Builds, sodass die Größe eines Küchenspülbeckens möglicherweise nicht so wichtig ist. Der Unterschied besteht darin, dass jQuery eine bessere Unterstützung und Leistung bietet, häufiger aktualisiert wird und eine aktivere Community hat. Die Attraktivität von Zepto wird durch jQuery 2.0, das die Lücken schließt, die Zepto einmal geschlossen hat, weitgehend verringert.
John-David Dalton

23

jquery 2 ist ~ 30 kb und zepto ist ~ 10 kb, wenn beide gezippt und minimiert sind. Nicht gezippt, aber minimiert, jquery 2 ist ~ 80 kb und zepto ist ~ 30 kb.

Verwenden Sie ein Analyseprogramm, um die Zielgruppe für Ihre Website zu überprüfen. Wenn ein erheblicher Teil Ihrer Benutzer IE9 verwendet, benötigen Sie jquery und zepto fliegt nicht. Wenn mehr als ein paar Prozent IE8 und niedriger verwenden und Sie es nicht ertragen können, sie ohne Ihre Website festzusitzen, müssen Sie jquery 1 verwenden. Wenn Sie das letzte Ziel haben, tut es mir leid - viele neue glänzende Spielzeuge wird nicht für dich arbeiten.

Wenn Sie eine HTML5-App für Android / iOS / Phonegap usw. erstellen, zielen Sie hauptsächlich auf das Webkit ab, sodass Sie mit zepto viel Geld sparen können. Die wichtigste Erkenntnis und der Grund für die Existenz von zepto besteht darin, dass bei der Ausführung auf Webkit-Plattformen viele plattformübergreifende Problemumgehungen von jquery einfach nicht erforderlich sind.

Zepto fügt auch einige Touch-Event-Handler hinzu, um die mobile Entwicklung zu unterstützen. Es ist jedoch hauptsächlich das Seitengewicht im Vergleich zur Plattformunterstützung, über die Sie nachdenken müssen.


1
Vermutlich, wenn Sie eine Plattform auswählen, sind plattformübergreifende Problemumgehungen nicht erforderlich :)
Rob Grant

Zepto ist näher an ~ 25kb;). Und sie haben Build-Anweisungen, um die Bibliothek für die Mindestgröße neu zu packen, die Sie benötigen.
Jason

Ich nehme an, Sie sprechen von dem nicht gezippten, aber minimierten Build, der in den acht Monaten, seit ich das geschrieben habe, nicht mehr als ein paar KB stark geschwankt hat. Also ... 25kb ist ~ 30kb: P
Asparagino

14

Dies ist eine etwas alte Frage, aber ich möchte die Leistung hinzufügen. Nach allem, was ich gehört hatte, schnitt Zepto besser ab als jQuery.

Diese jsPerf zeigt unterschiedliche Ergebnisse. Ich kann die Klassenauswahl von jQuery (eines einzelnen Elements) 137% so oft verwenden wie die von Zepto. Für die ID-Auswahl kann ich 285% von jQuery so oft verwenden.

Dies ist eine große Sache, wenn man bedenkt, dass bei den meisten Anwendungen DOM-Interaktionen die einzige wichtige Leistungsstatistik sind (außer Netzwerkanforderungen).

Wenn ich mir auch diese Leistung ansehe, kann ich sehen, dass ich document.getElementsByClassNAme 8326% so oft wie jQuery ausführen kann, also sollten wir alle diese nach Möglichkeit weglassen :-)


3
Das sagen die Jungs von Zurb nicht. Einer der Gründe, warum sie Zepto aus ihrem CSS-Framework entfernt haben, war, dass jQuery Zepto übertraf, selbst wenn die Datei von Zepto kleiner war. Andere Gründe waren, dass viele Plugins für jQuery geschrieben wurden. Schauen Sie sich ihren Blog-Beitrag an: zurb.com/article/1293/why-we-dropped-zepto
Ricardo Zea

2
@ricardozea, diese Antwort und dieser Artikel sagen dasselbe: jQuery ist mit Selektoren schneller. Um klar zu sein, benötigen Sie ungefähr 100 jsperfs, um die Bibliotheken vollständig zu testen, und stellen dann einen Statistiker ein, um festzustellen, welche für die durchschnittliche Site und den durchschnittlichen Benutzer im Durchschnitt schneller ist.
Brigand

1
Sie sagen: " ... Zepto hat eine bessere Leistung als jQuery erbracht. " Ja, wir sind uns einig, dass jQuery schneller ist.
Ricardo Zea

1
heh Nein :-) Genau das wurde mir gesagt; Meine Ergebnisse waren, dass jQuery schneller war (zumindest mit Selektoren).
Brigand


3

Ich glaube, Zepto wurde nie für einen schnellen Übergang ins Web verwendet. Werfen Sie einen Blick Tief in seiner eisigen Höhle hörte der weise und mächtige Yeti Leute fragen: "Wohin ist Zepto gegangen?" Als Foundation 4 konzipiert wurde, wechselten wir zu Zepto (mit einer jQuery-Option), um die Dateigröße zu verringern und die Ladezeit zu verkürzen.

Im Laufe der Zeit stellten wir jedoch fest, dass eine geringere Dateigröße insgesamt nicht zu einer besseren Leistung führte. Sicher, Zepto schnell heruntergeladen. Aber einmal geladen, war es nicht ganz so schnell wie jQuery. Es hat nicht geholfen, dass für viele Plugins von Drittanbietern jQuery und nicht Zepto erforderlich war. Tatsächlich stellten wir fest, dass einige JavaScripts von Drittanbietern direkt mit Zepto in Konflikt standen.

Auch für uns war es nicht einfach, unterschiedliche Codebasen zu pflegen. Zum Beispiel fehlt Zepto eine geeignete Höhenberechnungsfunktion, was bestimmte Gitterberechnungen schwierig macht.

Um all dies zu lösen, war die Antwort klar wie ein Frühlingshimmel im Himalaya: Foundation 5 verwendet jQuery 2. Neben einer besseren Geschwindigkeit und Akzeptanz in der Branche profitiert jQuery 2 auch von einer besseren Dokumentation und Unterstützung. jQuery ist API-kompatibel.

** **.

Wir gingen jedoch davon aus, dass Zepto schneller als jQuery sein würde. Wir wollten nicht zweimal dieselbe Annahme machen, also haben wir Zepto vs. jQuery 2 getestet. Das Ergebnis: jQuery 2 hat mehr Operationen pro Sekunde. Dadurch erhält Foundation 5 eine bessere Leistung, was für alle Benutzer zu einer besseren Benutzererfahrung führt.

** **.

Letztendlich möchten wir den Menschen helfen, großartige Produkte schneller zu entwickeln - und diesmal bedeutet dies, dem reaktionsschnellsten Front-End-Framework der Welt selbst einen Geschwindigkeitsschub zu geben.


Wenn Sie so besorgt über die Leistung sind, warum verwenden Sie jQuery überhaupt? Sicher, jQuery hat eine bessere Leistung als Zepto, aber die Leistung von jQuery ist im Vergleich zu VanillaJS schlecht. Grundsätzlich ist VanillaJS eine bessere und überlegene Version von jQuery. Stellen Sie sich riesige Bibliotheken mit hochleistungsoptimierten Funktionen vor, die zu einem federleichten Paket zusammengefasst sind. Das ist die Kraft von VanillaJS. Ich kann es nur empfehlen.
Jack Giffin

1

Nach dem, was ich gelesen habe, scheinen sich die Leute stark zu Zepto zu neigen. Die häufigste Begründung dafür ist die Dateigröße, aber jQuery 2 ist nach dem Laden tatsächlich schneller als Zepto. Außerdem werden Sie für Zepto nicht viel Unterstützung finden, da sich die meisten Leute um jQuery herum entwickeln. Ich schlage nicht vor, dass Sie Zepto nicht verwenden sollten, aber Sie sollten untersuchen, warum Sie es verwenden möchten und ob andere JavaScript-Bibliotheken, die Sie verwenden, Unterstützung / Konflikt damit verwenden.

Ich würde sagen, es hängt von Ihrem Projekt ab. Für den persönlichen oder eingeschränkten Gebrauch ist Zepto möglicherweise die bessere Option. JQuery wird jedoch von anderen Bibliotheken viel stärker unterstützt. Wenn nur die Dateigröße Ihren Grund bestimmt, ist es fehlerhaft. JavaScript sollte nach dem Laden der Seite geladen werden, daher wird die Ladezeit Ihrer Seite in beiden Fällen nicht beeinträchtigt.

Hier ist ein Leistungstest mit jQuery 1.7.2, Zepto 1.0rc1 und auch jQMobi 1.03.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.