jQuery_jquery のパフォーマンスを向上させるために 7 つのことを実行してください
1. ループの外に追加
DOM に関係するものにはすべて代償が伴います。多数の要素を DOM に追加する場合は、複数回行うのではなく、すべてを一度に追加する必要があります。ループに要素を追加するときによくある問題が発生します。
$.each( myArray, function( i , item ) {
var newListItem = "
$( "#ballers" ).append( newListItem );
});
一般的な手法は、文書の断片を使用することです。ループの各反復で、DOM 要素の代わりに要素をフラグメントに追加します。ループが終了したら、フラグメントを DOM 要素に追加します。
var frag = document.createDocumentFragment();
$.each( myArray, function( i, item ) {
var newListItem = document.createElement( "li" );
var itemText = document.createTextNode( item );
newListItem.appendChild( itemText );
frag.appendChild( newListItem );
});
$( "#ballers" )[ 0 ].appendChild( frag );
もう 1 つの簡単なトリックは、ループの反復ごとに文字列を継続的に構築することです。ループが終了したら、DOM 要素の HTML をこの文字列に設定します。
var myHtml = "";
$.each( myArray, function( i, item ) {
myHtml = "
});
$( "#ballers" ).html( myHtml );
もちろん、他にも試すことができるテクニックがあります。 jsperf というサイトは、これらのプロパティをテストするための優れた方法を提供します。このサイトでは、各手法のベンチマークを実行し、クロスプラットフォームのパフォーマンス結果を視覚化できます。
2. ループ中のキャッシュ長
for ループでは、事前にキャッシュする必要がある配列の長さプロパティに毎回アクセスしないでください。
var myLength = myArray.length;
for ( var i = 0; i // 何かをします }
3. 操作する要素を切り離します
DOM の操作は遅いため、できるだけ調整を少なくして操作する必要があります。 jQuery は、この問題を解決するために、バージョン 1.4 で detach() と呼ばれるメソッドを導入しました。これにより、要素を操作するときに DOM から要素を切り離すことができます。
var $table = $( "#myTable " );
var $parent = $table.parent();
$table.detach();
// ... テーブルに大量の行を追加します
$parent.append( $table );
4. 存在しない要素に基づいて行動しない
空のセレクターで多くのコードを実行する予定がある場合、jQuery はヒントを提供しません。エラーが発生しなかったかのように実行を続けます。セレクターに含まれる要素の数を確認するのはあなた次第です。
// 悪い: これは、前に 3 つの関数を実行します。 it
// 選択範囲に何もないことがわかります
$( "#nouchthing" ).slideUp();
// より良い:
var $mySelection = $( "#nouchthing" );
if ( $mySelection.length ) {
$mySelection.slideUp();
}
// ベスト: doOnce プラグインを追加します。
jQuery.fn.doOnce = function( func ) {
this.length && func.apply( this );
これを返します;
}
$( "li.cartitems" ).doOnce(function() {
// ajax にしてください。o/
});
このガイドは、セレクターに要素が含まれていない場合に多くのオーバーヘッドを必要とする jQuery UI ウィジェットに特に役立ちます。
5. セレクターを最適化する
多くのブラウザーが document.querySelectorAll() メソッドを実装し、jQuery がセレクターの負担をブラウザーに移すため、セレクターの最適化は以前ほど重要ではありません。ただし、留意すべきヒントがまだいくつかあります。
ID ベースのセレクター
セレクターを ID で開始することが常に最善です。
// 高速:
$( "#container div.robotarm" );
// 超高速:
$( "#container" ).find( "div.robotarm" );
最初のセレクターがノイズの多いセレクター エンジンを経由せずに処理されるため、.find() メソッドを使用すると高速になります -- ID のみのセレクターはすでに document.getElementById() メソッドを使用しています ネイティブであるため処理が高速ですブラウザ。
特異性
セレクターの右側をできるだけ詳しく説明し、左側についてはその逆を行います。
// 最適化されていません:
$( "div. data .gonzalez" );
// 最適化:
$( ".data td.gonzalez" );
セレクターの右端には tag.class の形式でセレクターを記述し、左側には tag または .class のみを使用するようにしてください。
特異性の過度の使用を避ける
$( ".data table.attendees td .gonzalez" );
// より良い: 可能であれば中央を削除します。
$( ".data td.gonzalez" );
「DOM」を使用すると、要素を検索するときにセレクター エンジンがそれほど多くの反復を行う必要がないため、常にセレクターのパフォーマンスが向上します。
ユニバーサルセレクターの使用を避ける
セレクターが明示的または暗黙的に未定義の範囲内で一致する場合、パフォーマンスに大きな影響を与えます。
$( ".buttons > *" ); // 非常に高価です。
$( ".buttons" ).children(); // はるかに優れています。
$( ".category :radio" ); // 暗黙のユニバーサル選択。 🎜> $ ( ".category *:radio" ); // 同じことですが、今度は明示的にします。
$( ".category input:radio" ) // はるかに優れています。
多くの CSS を変更するためにスタイルシートを使用します。要素
$( "a.swedberg" ).css( "color", "#0769ad" );
// はるかに高速:
$( "")
.appendTo( "head" );
jQuery をブラック ボックスとして扱わないでください

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











Windows 10 と Windows 11 のパフォーマンス比較: どちらが優れていますか?テクノロジーの継続的な開発と進歩により、オペレーティング システムは常に更新され、アップグレードされます。世界最大のオペレーティング システム開発者の 1 つとして、Microsoft の Windows シリーズ オペレーティング システムは常にユーザーから大きな注目を集めてきました。 2021 年、Microsoft は Windows 11 オペレーティング システムをリリースし、広範な議論と注目を引き起こしました。では、Windows 10 と Windows 11 のパフォーマンスの違いは何でしょうか?

Windows オペレーティング システムは、常にパーソナル コンピューターで最も広く使用されているオペレーティング システムの 1 つであり、最近 Microsoft が新しい Windows 11 システムを発売するまで、Windows 10 は長い間 Microsoft の主力オペレーティング システムでした。 Windows 11 システムのリリースに伴い、Windows 10 と Windows 11 システムのパフォーマンスの違いに関心が集まっていますが、どちらの方が優れているのでしょうか?まずはWを見てみましょう

モバイルインターネットの時代において、スマートフォンは人々の日常生活に欠かせないものになりました。多くの場合、スマートフォンのパフォーマンスはユーザー エクスペリエンスの品質に直接影響します。スマートフォンの「頭脳」であるプロセッサーの性能は特に重要です。市場では、Qualcomm Snapdragon シリーズは常に強力なパフォーマンス、安定性、信頼性の代表格であり、最近では Huawei も独自の Kirin 8000 プロセッサを発売し、優れたパフォーマンスを備えていると言われています。一般ユーザーにとって、性能の良い携帯電話をいかに選ぶかは重要な課題となっている。今日はそうします

Ollama は、Llama2、Mistral、Gemma などのオープンソース モデルをローカルで簡単に実行できるようにする非常に実用的なツールです。この記事では、Ollamaを使ってテキストをベクトル化する方法を紹介します。 Ollama をローカルにインストールしていない場合は、この記事を読んでください。この記事では、nomic-embed-text[2] モデルを使用します。これは、短いコンテキストおよび長いコンテキストのタスクにおいて OpenAI text-embedding-ada-002 および text-embedding-3-small よりも優れたパフォーマンスを発揮するテキスト エンコーダーです。 o が正常にインストールされたら、nomic-embed-text サービスを開始します。

さまざまな Java フレームワークのパフォーマンス比較: REST API リクエスト処理: Vert.x が最高で、リクエスト レートは SpringBoot の 2 倍、Dropwizard の 3 倍です。データベース クエリ: SpringBoot の HibernateORM は Vert.x や Dropwizard の ORM よりも優れています。キャッシュ操作: Vert.x の Hazelcast クライアントは、SpringBoot や Dropwizard のキャッシュ メカニズムよりも優れています。適切なフレームワーク: アプリケーションの要件に応じて選択します。Vert.x は高パフォーマンスの Web サービスに適しており、SpringBoot はデータ集約型のアプリケーションに適しており、Dropwizard はマイクロサービス アーキテクチャに適しています。

PHP と Go は一般的に使用される 2 つのプログラミング言語であり、それぞれに異なる特徴と利点があります。その中でも性能差は誰もが一般的に気にする問題です。この記事では、パフォーマンスの観点から PHP 言語と Go 言語を比較し、具体的なコード例を通じてパフォーマンスの違いを示します。まずは、PHPとGo言語の基本的な機能を簡単に紹介します。 PHP は、もともと Web 開発用に設計されたスクリプト言語で、学習と使用が簡単で、Web 開発の分野で広く使用されています。 Go 言語は、Google によって開発されたコンパイル言語です。

PHP の配列キー値の反転メソッドのパフォーマンスを比較すると、array_flip() 関数は、大規模な配列 (100 万要素以上) では for ループよりもパフォーマンスが良く、所要時間が短いことがわかります。キー値を手動で反転する for ループ方式は、比較的長い時間がかかります。

C++ プログラムのパフォーマンスに対する関数の影響には、関数呼び出しのオーバーヘッド、ローカル変数、およびオブジェクト割り当てのオーバーヘッドが含まれます。 関数呼び出しのオーバーヘッド: スタック フレーム割り当て、パラメーター転送、および制御転送が含まれます。これは、小規模な関数に大きな影響を与えます。ローカル変数とオブジェクト割り当てのオーバーヘッド: ローカル変数やオブジェクトの作成と破棄が大量に行われると、スタック オーバーフローやパフォーマンスの低下が発生する可能性があります。
