ホームページ > 記事 > ウェブフロントエンド > all_jquery で jQuery を使わずに Web サイトが単純なニーズを満たすにはどうすればよいでしょうか
jQuery は、現在最も人気のある JavaScript ツール ライブラリです。
統計によると、現在世界中の Web サイトの 57.3% で使用されています。つまり、10 個の Web サイトのうち 6 個が jQuery を使用していることになります。ツール ライブラリを使用するサイトに限ると、この割合は 91.7% という驚異的な数字にまで上昇します。
jQuery は非常に人気がありますが、その肥大化したサイズも頭痛の種です。 jQuery 2.0 の元のサイズは 235 KB で、最適化されたサイズは 81 KB です。IE6、7、および 8 をサポートする jQuery 1.8.3 の場合、元のサイズは 261 KB、最適化されたサイズは 91 KB です。
このサイズだと、モバイルデバイスはおろか、ブロードバンド環境でもフルロードに1秒以上かかります。これは、jQuery を使用する場合、ユーザーがページの効果を確認するまでに少なくとも 1 秒の遅延が発生することを意味します。 jQuery が本質的に DOM を操作するためのツールであることを考慮すると、次のような疑問が生じるだけではありません。「ほんのいくつかの Web ページ効果のためだけに、これほど大規模なライブラリを使用する必要があるのか?」
2006 年に jQuery が誕生したとき、jQuery は主に、異なるブラウザ (主に IE6) 間の違いを排除し、開発者にシンプルな統一インターフェイスを提供するために使用されました。当時と比べると、今の状況は大きく変わりました。 IE の市場シェアは減少し続けており、ECMAScript に基づく JavaScript 標準構文はますます広範囲にサポートされています。開発者は、JavaScript の標準構文を直接使用し、それをすべての主要なブラウザで同時に実行できるため、jQuery を通じて互換性を確保する必要がなくなりました。
JavaScript 標準構文を使用して jQuery の主要な関数の一部を置き換え、jQuery フリーにする方法を見てみましょう。
1. DOM 要素を選択します
jQuery の核心は、さまざまなセレクターを通じて DOM 要素を選択することです。この関数をシミュレートするには、querySelectorAll メソッドを使用できます。
ここで、querySelectorAll メソッドは NodeList オブジェクトを返すことに注意してください。これは配列 (数値インデックスと長さのプロパティを持つ) によく似ていますが、配列ではなく、pop や配列固有のメソッドではありません。プッシュは使用できません。必要に応じて、Nodelist オブジェクトを配列に変換することを検討してください。
2. DOM 操作
DOM 自体には豊富な操作メソッドがあり、jQuery が提供する操作メソッドを置き換えることができます。
DOM 要素を最後に追加します。
DOM 要素を head に挿入します。
DOM 要素を削除します。
3. イベント監視
jQuery の on メソッドは、addEventListener を使用してシミュレートできます。
使いやすくするために、このメソッドを NodeList オブジェクトにデプロイすることもできます。
4. イベントトリガー
jQuery のトリガー メソッドは別途デプロイする必要があり、比較的複雑です。
このメソッドを NodeList オブジェクトにもデプロイします。
5. ドキュメントの準備完了
現在のベスト プラクティスは、JavaScript スクリプト ファイルをページの下部にロードすることです。この場合、document.ready メソッド (jQuery では $(function) と省略されます) は、実行時にすでに DOM オブジェクトが生成されているため、必要ありません。
6. attr メソッド
jQuery は、attr メソッドを使用して Web ページ要素の属性の読み取りと書き込みを行います。
DOM 要素を使用すると、属性値を直接読み取ることができ、書き込み方法が非常に簡単になります。
input 要素の this.value は入力ボックス内の値を返し、link 要素の this.href は絶対 URL を返すことに注意してください。これら 2 つの Web ページ要素の属性の正確な値を使用する必要がある場合は、this.getAttribute (「value」) と this.getAttibute (「href」) を使用できます。
7. addClass メソッド
jQuery の addClass メソッドは、DOM 要素にクラスを追加するために使用されます。
DOM 要素自体には、クラスの操作に使用できる読み取りおよび書き込み可能な className 属性があります。
HTML 5 は、より強力な機能を備えた classList オブジェクトも提供します (IE 9 ではサポートされていません)。
8. CSS
jQuery の css メソッドは、Web ページ要素のスタイルを設定するために使用されます。
DOM 要素には、直接操作できる style 属性があります。
9. データストレージ
jQuery オブジェクトはデータを保存できます。
HTML 5 には同様の機能を持つデータセット オブジェクトがありますが (IE 10 ではサポートされていません)、文字列のみを保存できます。
10. アヤックス
非同期操作のための jQuery の Ajax メソッド。
Ajax メソッドをシミュレートするリクエスト関数を定義できます。
次に、リクエスト関数に基づいて、jQuery の get メソッドと post メソッドをシミュレートします。
jQuery の animate メソッドは、アニメーション効果の生成に使用されます。
jQuery のアニメーション効果は主に DOM に基づいています。ただし、現在、CSS 3 アニメーションは DOM よりもはるかに強力であるため、CSS にアニメーション効果を記述し、DOM 要素のクラスを操作してアニメーションを表示できます。
アニメーションにコールバック関数を使用する必要がある場合、CSS 3 は対応するイベントも定義します。
12. 代替案
jQuery のサイズが大きいため、代替手段は無限にあります。
その中で最も有名なのは zepto.js です。その設計目標は、最小のサイズで jQuery の API と可能な限り互換性を持たせることです。 zepto.js バージョン 1.0 の元のサイズは 55 KB で、29 KB に最適化され、10 KB に gzip 圧縮されます。
最大限の互換性を求めず、jQuery の基本機能をシミュレートしたいだけの場合、最適化後の min.js はわずか 200 バイトですが、dolla は最適化後に 1.7 KB になります。
また、jQuery自体がモジュール設計を採用しているため、必要なモジュールのみを選択して使用することができます。詳細については、GitHub Web サイトを参照するか、専用の Web インターフェース を使用してください。
13. 参考リンク
- Remy Sharp、jQuery についてはわかりました。
- Hemanth.HM、Power of Vanilla JS
- Burke Holland、5 つのことjQuery を使うのはやめるべきです
(終了)