¿Cuál es la diferencia entre Zepto y jQuery 2?

81

Existen esos dos proyectos similares:

Zepto.js

Zepto es una biblioteca de JavaScript minimalista para navegadores modernos con una API en gran parte compatible con jQuery.

jQuery 2.0

jQuery 2.0 beta: aquí está su sabor del futuro, un jQuery que puede ser más rápido y más pequeño sin la necesidad de admitir IE 6, 7 u 8. Es una excelente opción para aplicaciones HTML específicas de la plataforma.

¿Se trata solo de rendimiento o siguen enfoques diferentes?

Jantimon
fuente
3
En caso de que alguna vez intente cambiar de jQuery a Zepto: blog.pamelafox.org/2011/11/porting-from-jquery-to-zepto.html
Aurelio
37
Esta es una pregunta útil, interesante y relevante sobre un problema de programación específico. ¿Por qué estaba cerrado? No es "cuál es mejor", sino "cuáles son las advertencias de usar"
Benjamin Gruenbaum

Respuestas:

52

La principal diferencia entre Zepto.js y jQuery son sus respectivos tamaños de archivo de ~ 20kb de Zepto.js (minificado, no comprimido con gzip) en lugar de ~ 80kb de jQuery, y ~ 10kb de Zepto.js (minificado, comprimido en Gzip) en lugar de ~ 30kb de jQuery. Además, el soporte de Zepto para navegadores tales como IE<10falta o no está garantizado, sus plataformas de destino son:

  • Safari 5+ (escritorio)
  • Chrome 5+ (escritorio)
  • Mozilla Firefox 4+
  • iOS 4+ Safari
  • Navegador Android 2.2+
  • Otros navegadores / tiempos de ejecución basados ​​en WebKit
  • navegador webOS 1.4.5+
  • Navegador BlackBerry Tablet OS 1.0.7+
  • Amazon Silk 1.0+
  • Opera 10+
  • Internet Explorer 10+
MHD
fuente
14
jquery 2 es ~ 30kb y zepto es ~ 10kb cuando ambos están comprimidos con gzip y minificados. Sin gzip, jquery 2 todavía tiene ~ 80kb y zepto ~ 30kb.
asparagino
-1. Como señala Asparagino, los números de MHD son incorrectos. Su respuesta es válida.
Jason
4
Tanto Zepto como jQuery admiten compilaciones personalizadas, por lo que el tamaño del fregadero de la cocina puede no ser tan importante. La diferencia es que jQuery tiene un mejor soporte y rendimiento, se actualiza con más frecuencia y tiene una comunidad más activa. El atractivo de Zepto se reduce en gran medida con jQuery 2.0 que cubre los vacíos que Zepto una vez llenó.
John-David Dalton
23

jquery 2 es ~ 30kb y zepto es ~ 10kb cuando ambos están comprimidos con gzip y minificados. Sin gzip pero minificado, jquery 2 es ~ 80kb y zepto es ~ 30kb.

Utilice un programa de análisis para verificar la audiencia de su sitio. Si una parte significativa de sus usuarios usa IE9, necesita jquery y zepto no volará. Si más de un pequeño porcentaje usa IE8 y versiones inferiores y no puede dejarlos varados sin su sitio, deberá usar jquery 1. Si está apuntando al último, lo siento, muchos juguetes nuevos y brillantes no funcionará para usted.

Si está creando una aplicación html5 para android / ios / phonegap, etc., entonces su objetivo principal es webkit, por lo que zepto le brinda un gran ahorro de tamaño. La idea principal y la razón por la que existe zepto es que cuando se ejecuta en plataformas de solo webkit, muchas de las soluciones multiplataforma de jquery son simplemente innecesarias.

Zepto también agrega un par de controladores de eventos táctiles para ayudar con el desarrollo móvil, pero es principalmente el peso de la página frente a la compatibilidad con la plataforma en lo que debe pensar.

espárrago
fuente
1
Presumiblemente, si elige una plataforma, las soluciones alternativas entre plataformas son innecesarias :)
Rob Grant
Zepto está más cerca de ~ 25kb;). Y tienen instrucciones de construcción para volver a empaquetar la biblioteca al tamaño mínimo que necesita.
Jason
Supongo que estás hablando de la compilación sin gzip pero minificada, que en realidad no ha fluctuado más de un par de kb en los ocho meses desde que escribí esto. Entonces ... 25kb es ~ 30kb: P
asparagino
14

Esta es una pregunta algo antigua, pero me gustaría agregar rendimiento. Por lo que había escuchado, Zepto funcionó mejor que jQuery.

Este jsPerf muestra diferentes resultados. Puedo usar la selección de clases de jQuery (de un solo elemento) 137% más a menudo, en comparación con Zepto. Para la selección de ID, puedo usar el 285% de jQuery con tanta frecuencia.

Eso es un gran problema considerando que en la mayoría de las aplicaciones, las interacciones DOM son la única estadística de rendimiento que importa (además de las solicitudes de red).

También mirando ese perf, puedo ver que podría hacer document.getElementsByClassNAme 8326% tan a menudo como jQuery, así que todos deberíamos deshacernos de todos estos si es posible :-)

Bandido
fuente
3
Eso no es lo que dicen los chicos de Zurb. Una de las razones por las que eliminaron Zepto de su marco CSS fue porque jQuery superó a Zepto incluso si el archivo de Zepto era más pequeño. Otras razones fueron porque muchos complementos se escribieron para jQuery. Echa un vistazo a la publicación de su blog: zurb.com/article/1293/why-we-dropped-zepto
Ricardo Zea
2
@ricardozea, esta respuesta y ese artículo dicen lo mismo: jQuery es más rápido con selectores. Sin embargo, para ser claros, necesitaría alrededor de 100 jsperfs para probar completamente las bibliotecas y luego contratar a un estadístico para determinar cuál es más rápido en promedio para el sitio promedio y el usuario promedio.
Brigand
1
Estás diciendo: " ... Zepto funcionó mejor que jQuery ". Sí, estamos de acuerdo en que jQuery es más rápido.
Ricardo Zea
1
je No :-) Eso es lo que me han dicho; mis hallazgos fueron que jQuery era más rápido (con selectores al menos).
Brigand
3

Creo que nunca usé zepto para una rápida transición a la web. Eche un vistazo en el interior de su cueva helada, el sabio y poderoso Yeti escuchó a la gente preguntar: "¿A dónde fue Zepto?" Cuando se concibió Foundation 4, cambiamos a Zepto (con una opción de jQuery) por su tamaño de archivo más pequeño y su tiempo de carga más rápido.

Pero con el tiempo, descubrimos que un tamaño de archivo más ligero no se traducía en un mejor rendimiento en general. Claro, Zepto se descargó rápidamente. Pero una vez cargado, no fue tan rápido como jQuery. No ayudó que muchos complementos de terceros requirieran jQuery, no Zepto; de hecho, descubrimos que algunos JavaScripts de terceros entraban en conflicto con Zepto.

Mantener diferentes bases de código tampoco fue fácil para nosotros. Por ejemplo, Zepto carece de una función de cálculo de altura adecuada, lo que dificulta ciertos cálculos de cuadrícula.

Para resolver todo esto, la respuesta fue clara como un cielo primaveral del Himalaya: Foundation 5 usa jQuery 2. Además de una mejor velocidad y aceptación de la industria, jQuery 2 también se beneficia de una mejor documentación y soporte. jQuery es compatible con API.

**

Pero asumimos que Zepto sería más rápido que jQuery. No queríamos hacer la misma suposición dos veces, así que probamos Zepto vs. jQuery 2. El resultado: jQuery 2 tiene más operaciones por segundo. Eso le da a Foundation 5 un mejor rendimiento, lo que se traduce en una mejor experiencia para todos los usuarios.

**

Al final, queremos ayudar a las personas a diseñar grandes productos más rápido, y esta vez, eso significa dar un impulso de velocidad al marco front-end más receptivo del mundo.

HAROONMIND
fuente
Si está tan preocupado por el rendimiento, ¿por qué está usando jQuery? Claro que jQuery tiene un mejor rendimiento que Zepto, pero el rendimiento de jQuery apesta en comparación con VanillaJS. Básicamente, VanillaJS es una versión mejor y superior de jQuery. Imagine vastas bibliotecas de funciones optimizadas de alto rendimiento empaquetadas juntas en un paquete ligero. Ese es el poder de VanillaJS. Recomiendo encarecidamente probarlo.
Jack Giffin
1

Por lo que he leído, la gente parece inclinarse mucho hacia Zepto. El razonamiento más común detrás de eso es el tamaño del archivo, pero jQuery 2 es en realidad más rápido que Zepto después de que se carga. Además, no encontrará mucho soporte para Zepto ya que la mayoría de las personas se desarrollan alrededor de jQuery. No estoy sugiriendo que no debas usar Zepto, pero debes investigar por qué quieres usarlo y si otras bibliotecas de JavaScript que estás usando lo soportan o entran en conflicto.

Yo diría que depende de tu proyecto. Para uso personal o limitado, Zepto puede ser la mejor opción. Sin embargo, jQuery es mucho más compatible con otras bibliotecas y si el tamaño del archivo es lo único que determina el motivo, entonces es defectuoso. JavaScript debe cargarse después de que se cargue la página, por lo tanto, no obstaculizaría el tiempo de carga de la página en ningún caso.

Aquí hay una prueba de rendimiento que incluye jQuery 1.7.2, Zepto 1.0rc1 y también jQMobi 1.03.

Kody
fuente