У чому різниця між Zepto та jQuery 2?


81

Є два подібні проекти:

Zepto.js

Zepto - це мінімалістична бібліотека JavaScript для сучасних браузерів із в основному сумісним з jQuery API.

jQuery 2.0

jQuery 2.0 бета-версія: ось ваш смак майбутнього, jQuery, який може бути швидшим і меншим без необхідності підтримувати IE 6, 7 або 8. Це чудовий вибір для специфічних для платформи програм HTML.

Це стосується лише продуктивності чи вони застосовують різні підходи?


3
Якщо ви коли-небудь спробуєте перейти з jQuery на Zepto: blog.pamelafox.org/2011/11/porting-from-jquery-to-zepto.html
Ауреліо

37
Це корисне, цікаве, актуальне запитання про конкретну проблему програмування. Чому його закрили? Це не "що краще", а "які застереження щодо використання"
Бенджамін Груенбаум,

Відповіді:


52

Основною відмінністю між Zepto.js та jQuery є розмір відповідних файлів Zepto.js ~ 20 кб (зменшений, а не зіштований) замість ~ 80 кб jQuery та ~ 10 кб (зменшений, Gzipped) Zepto.js замість ~ 30 кб jQuery. Крім того, підтримка Zepto для таких браузерів, IE<10яких немає або не гарантується, цільовими платформами є:

  • Safari 5+ (настільний)
  • Chrome 5+ (настільний)
  • Mozilla Firefox 4+
  • iOS 4+ Safari
  • Браузер Android 2.2+
  • Інші браузери / середовища виконання на базі WebKit
  • веб-браузер 1.4.5+
  • Оглядач BlackBerry Tablet OS 1.0.7+
  • Amazon Silk 1.0+
  • Opera 10+
  • Internet Explorer 10+

14
jquery 2 дорівнює ~ 30кб, а zepto ~ 10кб, коли обидва вони зішпітовані та зменшені. Якщо не розім'яти файл, jquery 2 все ще становить ~ 80 кб, а zepto - ~ 30 кб.
аспарагіно

-1. Як зазначає аспарагіно, цифри MHD є неправильними. Його відповідь вірна.
Джейсон

4
І Zepto, і jQuery підтримують власні конструкції, тому розмір кухонної раковини може бути не таким важливим. Різниця полягає в тому, що jQuery має кращу підтримку та продуктивність, оновлюється частіше та має більш активну спільноту. Привабливість Zepto значною мірою зменшується завдяки jQuery 2.0, що покриває прогалини, заповнені Zepto.
Джон-Девід Далтон,

23

jquery 2 дорівнює ~ 30кб, а zepto ~ 10кб, коли обидва вони зішпітовані та зменшені. Jziery 2 є ~ 80kb, а не zzipped, але зменшений, ~ 30kb.

Використовуйте програму аналітики, щоб перевірити аудиторію вашого сайту. Якщо значна частина ваших користувачів використовує IE9, вам потрібен jquery і zepto не буде працювати. Якщо більше декількох відсотків використовують IE8 і нижче, і ви не можете зіткнутися з тим, щоб залишити їх без вашого сайту, вам потрібно буде використовувати jquery 1. Якщо ви націлюєтесь на цей останній, вибачте - багато нових блискучих іграшок не буде працювати для вас.

Якщо ви створюєте програму html5 для android / ios / phonegap тощо, тоді ви в першу чергу націлюєтеся на webkit, тому zepto дає вам велику економію розміру. Основне розуміння та причина існування zepto полягає в тому, що під час роботи на веб-платформах лише платформи багато обхідних обхідних шляхів jquery просто непотрібні.

Zepto також додає кілька сенсорних обробників подій, щоб допомогти мобільному розробнику, але це головним чином вага сторінки та підтримка платформи, про яку потрібно подумати.


1
Імовірно, якщо ви виберете будь-яку платформу, тоді крос-платформні обхідні шляхи не потрібні :)
Роб Грант,

Zepto ближче до ~ 25kb;). І вони мають інструкції щодо побудови, щоб перепакувати бібліотеку на мінімальний розмір, який вам потрібен.
Джейсон

Я припускаю, що ви говорите про незізіртовану, але мініфіковану збірку, яка насправді не коливалась більше ніж на пару кб за вісім місяців, як я це написав. Отже ... 25kb - це ~ 30kb: P
аспарагіно

14

Це дещо старе запитання, але я хотів би додати продуктивність. З того, що я чув, Zepto працював краще, ніж jQuery.

Цей jsPerf показує різні результати. Я можу використовувати вибір класу jQuery (одного елемента) на 137% так само часто, ніж у Zepto. Для вибору ідентифікатора я можу використовувати 285% jQuery так само часто.

Це величезна угода, враховуючи більшість програм, взаємодія DOM є єдиною статистикою продуктивності, яка має значення (крім мережевих запитів).

Також, дивлячись на цю версію, я бачу, що міг би робити document.getElementsByClassNAme 8326% так часто, як jQuery, тому нам всім слід відмовитись від усіх, якщо це можливо :-)


3
Це не те, що говорять хлопці з Цурбу. Однією з причин, через яку вони випустили Zepto зі свого фреймворка CSS, було те, що jQuery перевершив Zepto, навіть якщо файл Zepto був меншим. Інші причини полягали в тому, що багато плагінів було написано для jQuery. Перегляньте їх публікацію в блозі: zurb.com/article/1293/why-we-dropped-zepto
Рікардо Зеа,

2
@ricardozea, ця відповідь і ця стаття говорять про одне і те ж: jQuery швидше із селекторами. Однак, щоб було зрозуміло, вам знадобиться близько 100 jsperfs, щоб повністю протестувати бібліотеки, а потім найняти статистика, щоб визначити, що в середньому швидше для середнього сайту та середнього користувача.
Brigand

1
Ви кажете: " ... Zepto виступив краще, ніж jQuery. ". Так, ми погоджуємось, що jQuery швидший.
Рікардо Зеа,

1
хе ні :-) Це саме те, що мені сказали; мої висновки полягали в тому, що jQuery був швидшим (принаймні з селекторами).
Brigand


3

Я думаю, що ніколи не використовував зепто для швидкого розбурханого переходу в Інтернет, заглянувши глибоко всередину його крижаної печери, мудрий і могутній Єті почув, як люди запитували: "Куди це Зепто пішов?" Коли засновувався Foundation 4, ми перейшли на Zepto (з опцією jQuery) для меншого розміру файлу та швидшого часу завантаження.

Але з часом ми виявили, що менший розмір файлу не призвів до кращої продуктивності в цілому. Звичайно, Zepto швидко завантажився. Але після завантаження це було не так швидко, як jQuery. Не допомогло те, що для багатьох сторонніх плагінів потрібен jQuery, а не Zepto - насправді ми виявили, що деякі сторонні JavaScripts прямо конфліктували з Zepto.

Підтримання різних баз коду теж не було для нас простим. Наприклад, Zepto не має належної функції обчислення висоти, що ускладнює певні розрахунки сітки.

Щоб вирішити все це, відповідь була чіткою, як весняне гімалайське небо: Foundation 5 використовує jQuery 2. На додаток до кращої швидкості та прийнятності в галузі, jQuery 2 також виграє від кращої документації та підтримки. jQuery сумісний з API.

**

Але ми припускали, що Zepto буде швидшим за jQuery. Ми не хотіли робити одне і те ж припущення двічі, тому ми протестували Zepto проти jQuery 2. Результат: jQuery 2 має більше операцій в секунду. Це дає Foundation 5 кращу продуктивність, що означає кращий досвід для всіх користувачів.

**

Врешті-решт, ми хочемо допомогти людям швидше розробляти чудові продукти - і на цей раз це означає, що швидкісний підхід до найбільш реагуючого фронтенд-фреймворку у самому світі.


Якщо вас так турбує продуктивність, чому ви взагалі використовуєте jQuery? Звичайно, jQuery має кращу продуктивність, ніж Zepto, але продуктивність jQuery відмовна в порівнянні з VanillaJS. В основному, VanillaJS - це краща і чудова версія jQuery. Уявіть собі величезні бібліотеки високоефективних оптимізованих функцій, упакованих у певний пакет. У цьому сила VanillaJS. Я дуже рекомендую спробувати.
Джек Гіффін,

1

З того, що я прочитав, люди, здається, сильно схиляються до Зепто. Найпоширенішими міркуваннями є розмір файлу, але jQuery 2 насправді швидший за Zepto після завантаження. Крім того, ви не знайдете великої підтримки для Zepto, оскільки більшість людей розвивається навколо jQuery. Я не пропоную вам не використовувати Zepto, але вам слід вивчити, чому ви хочете використовувати його, і чи інші бібліотеки JavaScript, які ви використовуєте, підтримують / конфліктують з ним.

Я б сказав, що це залежить від вашого проекту. Для особистого або обмеженого використання Zepto може бути кращим варіантом. Однак jQuery набагато більше підтримується іншими бібліотеками, і якщо розмір файлу є єдиним, що визначає вашу причину, то він має недоліки. JavaScript слід завантажувати після завантаження сторінки, тому це не заважатиме часу завантаження сторінки.

Ось тест продуктивності, включаючи jQuery 1.7.2, Zepto 1.0rc1, а також jQMobi 1.03.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.