目次
例 2
もう 1 つの (あまり最適化されていない) オプションは、フィルタリングを使用することです。
はい、関数内で
ホームページ ウェブフロントエンド jsチュートリアル 初心者向けのアドバイス: jQuery について深く掘り下げないでください。

初心者向けのアドバイス: jQuery について深く掘り下げないでください。

Aug 30, 2023 am 11:49 AM

新手友好建议:不要深入 jQuery

Nettuts の編集者として、私は提出されたチュートリアルから多くのコードをレビューすることがあります。 jQuery は何年も前から存在していますが、今でもよく見かけるよくある間違いが 1 つあります。


例#1

次のコードを考えてみましょう:

リーリー

上記のコードは、さまざまな理由から複雑すぎます。コードが実際に何をするかについては心配しないでください (意味不明です)。代わりに、$(this) へのすべての参照を見てください。

DOM をプールとして考えてください。

DOM をプールとして考えてください。あなたが子供の頃、両親が見ているふりをしている間、コインを探してプールに飛び込んだことを覚えていますか?これは現実世界での比較になります。

$('.someClass') を使用するたびに、jQuery はプール (DOM) にジャンプし、そのコイン (またはノード) を検索します。したがって、関数内でそれを複数回参照する場合は、多くの作業が必要になります。あるいは、現実世界と比較すると、無駄で不必要です。必要ないのになぜ jQuery を呼び出すのでしょうか?いわゆる「キャッシュ」を行う必要があります。

リーリー

これははるかにクリーンです。最近のブラウザ エンジンは信じられないほど高速になり、貧弱なコーディングを補うために最善を尽くしますが、それでも効率的なコードを作成し、プール内を飛び回ってすべてのエネルギーを無駄にしないように努める必要があります。技術的に言えば、this のように jQuery に DOM ノードを渡すと、DOM は再クエリされません。 jQuery オブジェクトを返すだけです。

正直に言うと、この 2 つのパフォーマンスの差は無視できるものであるため、私たちはクリーンなコードを自分たちで書きます。

例 2

もう少し複雑な例であるタブを考えてみましょう。

リーリー

このコードはいたるところにあります。それは醜くて非効率的です。最初の解決策は、すべての CSS を削除することです。値が動的に作成される場合、スタイルは JavaScript にのみ配置できます。たとえば、画面上の要素の正確な位置を計算する必要がある場合は、.css('left',calculatedValue) を使用できます。この場合、すべてを外部スタイル シートにエクスポートできます。これにより、次のことがわかります:

リーリー

次に、DOM で .tabs li$(this) のクエリを続けるのはなぜでしょうか?プールに飛び込むのはやめてください。 .tabs li の場所を「キャッシュ」しましょう。

リーリー

の方が優れていますが、それでも $(this) を 2 回呼び出しますが、これは大したことではありません。しかし、私の経験では、早期に芽を摘み取らないと、この数はすぐに増加する可能性があります。

リーリー ###フィルター###

もう 1 つの (あまり最適化されていない) オプションは、フィルタリングを使用することです。

リーリー

この例の違いは、

$(this)

を参照する代わりに、filter() メソッドを使用して、リスト項目のコレクションをクリックされた項目のみに減らすことです。

何をとるべきか

はい、関数内で

$('.tabs)

を複数回参照しても、問題は解決しません。最近の JavaScript エンジンは非常に高速です。これを何千回も実行してパフォーマンスをテストした場合、実行の差は数百ミリ秒になる可能性があります。しかし、疑問は残ります。なぜこれを行うのでしょうか? jQuery のような多くの抽象化を扱うとき、$('.tabs')

が多くのコードを実行する実際の関数であることを忘れがちです。これらの概念は jQuery だけでなく JavaScript 一般に適用されることにも注意してください。 上記の キャッシュ

手法を使用して、よりクリーンなコードを自分で作成してください。

以上が初心者向けのアドバイス: jQuery について深く掘り下げないでください。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScriptの文字列文字を交換します

カスタムGoogle検索APIセットアップチュートリアル カスタムGoogle検索APIセットアップチュートリアル Mar 04, 2025 am 01:06 AM

カスタムGoogle検索APIセットアップチュートリアル

例JSONファイルの例 例JSONファイルの例 Mar 03, 2025 am 12:35 AM

例JSONファイルの例

10 jQuery構文蛍光物 10 jQuery構文蛍光物 Mar 02, 2025 am 12:32 AM

10 jQuery構文蛍光物

8見事なjQueryページレイアウトプラグイン 8見事なjQueryページレイアウトプラグイン Mar 06, 2025 am 12:48 AM

8見事なjQueryページレイアウトプラグイン

独自のAjax Webアプリケーションを構築します 独自のAjax Webアプリケーションを構築します Mar 09, 2025 am 12:11 AM

独自のAjax Webアプリケーションを構築します

' this' JavaScriptで? ' this' JavaScriptで? Mar 04, 2025 am 01:15 AM

' this' JavaScriptで?

10 JavaScript&JQuery MVCチュートリアル 10 JavaScript&JQuery MVCチュートリアル Mar 02, 2025 am 01:16 AM

10 JavaScript&JQuery MVCチュートリアル

See all articles