web-dev-qa-db-ja.com

ZeptoとjQuery 2の違いは何ですか?

これらの2つの類似したプロジェクトがあります。

Zepto.js

Zeptoは、主にjQuery互換のAPIを備えた最新のブラウザー向けの最小限のJavaScriptライブラリです。

jQuery 2.

jQuery 2.0ベータ:将来の好み、jQueryは、IE 6、7、または8をサポートすることなく、より速く、より小さくすることができます。プラットフォーム固有の最適な選択です。 HTMLアプリケーション。

これはパフォーマンスのみですか、それとも異なるアプローチに従っていますか?

80
jantimon

Zepto.jsとjQueryの主な違いは、jQueryの〜80kbの代わりにZepto.jsの〜20kb(gzipで圧縮されていない)のそれぞれのファイルサイズと、jQueryの〜30kbの代わりにZepto.jsの〜10kb(縮小、Gzipで圧縮された)です。さらに、IE<10などのブラウザに対するZeptoのサポートは不足しているか、保証されていません。 そのターゲットプラットフォーム は次のとおりです。

  • Safari 5+(デスクトップ)
  • Chrome 5以降(デスクトップ)
  • Mozilla Firefox 4以降
  • iOS 4+ Safari
  • Android 2.2+ブラウザー
  • その他のWebKitベースのブラウザー/ランタイム
  • webOS 1.4.5+ブラウザー
  • BlackBerry Tablet OS 1.0.7+ブラウザー
  • Amazon Silk 1.0+
  • Opera 10+
  • Internet Explorer 10以降
51
MHD

両方をgzip圧縮して縮小すると、jquery 2は〜30kb、zeptoは〜10kbです。 gzip圧縮されていないが縮小されたjquery 2は〜80kb、zeptoは〜30kbです。

分析プログラムを使用して、サイトのオーディエンスを確認します。ユーザーの大部分がIE9を使用している場合は、jqueryが必要であり、zeptoは動作しません。数パーセント以上がIE8以下を使用していて、サイトなしで立ち往生することができない場合は、jquery 1を使用する必要があります。あなたのために動作しません。

Android/ios/phonegapなどのhtml5アプリを構築している場合は、主にWebkitをターゲットにしているため、zeptoを使用するとサイズを大幅に節約できます。 zeptoが存在する主な洞察と理由は、webkitのみのプラットフォームで実行する場合、jqueryの多くのクロスプラットフォームの回避策は単に不要であるということです。

Zeptoは、モバイル開発を支援するためにいくつかのタッチイベントハンドラーも追加しますが、それは主にページウェイトとプラットフォームサポートを考慮する必要があることです。

23
asparagino

これはやや古い質問ですが、パフォーマンスを追加したいと思います。私が聞いたことから、ZeptoはjQueryよりも優れたパフォーマンスを発揮しました。

この jsPerf は異なる結果を示します。 Zeptoに比べて、jQueryのクラス選択(単一要素)を137%頻繁に使用できます。 IDの選択には、jQueryの285%を頻繁に使用できます。

これは、ほとんどのアプリケーションで考慮すべき大きな問題です。DOMインタラクションは、(ネットワーク要求以外の)重要なパフォーマンス統計のみです。

また、そのパフォーマンスを見ると、jQueryと同じ頻度でdocument.getElementsByClassNAme 8326%を実行できることがわかります。したがって、可能であればこれらすべてを捨てる必要があります:-)

13
Brigand

Zeptoには、jQueryが備えている遅延/約束APIがありません。これを改善するアドオン、Simply Deferredがあります: https://github.com/sudhirj/simply-deferred .

5

Webへの高速な移行にzeptoを使用したことはないと思います。氷の洞窟の奥深くで、賢明で強力なイエティは、「Zeptoはどこに行ったのですか?」という質問を聞きました。 Zepto(jQueryオプション付き)は、ファイルサイズが小さく、読み込み時間が短縮されます。

しかし、時間の経過とともに、ファイルサイズを軽くしても全体的なパフォーマンスが向上しないことがわかりました。確かに、Zeptoはすぐにダウンロードしました。しかし、一度ロードされると、jQueryほど高速ではありませんでした。多くのサードパーティプラグインがZeptoではなくjQueryを必要とすることは助けになりませんでした。実際、一部のサードパーティJavaScriptがZeptoと完全に競合することがわかりました。

異なるコードベースを維持することも簡単ではありませんでした。たとえば、Zeptoには適切な高さ計算機能がないため、特定のグリッド計算が困難になります。

これをすべて解決するために、答えは春のヒマラヤの空として明確でした。Foundation5はjQuery 2を使用します。 jQueryはAPI互換です。

**

しかし、ZeptoはjQueryよりも高速であると想定しました。同じ仮定を2回行いたくなかったので、ZeptoとjQuery 2をテストしました。結果:jQuery 2には1秒あたりの操作が増えました。これにより、Foundation 5のパフォーマンスが向上し、すべてのユーザーのエクスペリエンスが向上します。

**

最終的には、優れた製品をより速く設計できるようにしたいと考えています。今回は、世界で最も応答性の高いフロントエンドフレームワーク自体の速度を向上させることを意味します。

3
HAROONMIND

私が読んだことから、人々はZeptoに強く傾いているようです。その背後にある最も一般的な理由はファイルサイズですが、jQuery 2は実際にはロードされた後のZeptoよりも高速です。また、ほとんどの人はjQueryを中心に開発しているため、Zeptoのサポートはあまりありません。 Zeptoを使用しないことをお勧めするわけではありませんが、Zeptoを使用する理由と、他のJavaScriptライブラリを使用している場合はサポートまたは競合するかどうかを検討する必要があります。

あなたのプロジェクト次第だと思います。個人的または限定的な使用には、Zeptoの方が適している場合があります。ただし、jQueryは他のライブラリによってはるかにサポートされており、ファイルサイズだけが理由を判断するものである場合、欠陥があります。 JavaScriptはページのロード後にロードする必要があります。したがって、どちらの場合でもページのロード時間を妨げることはありません。

ここ は、jQuery 1.7.2、Zepto 1.0rc1、およびjQMobi 1.03を含むパフォーマンステストです。

1
Kody