この記事では主に jQuery のパフォーマンス最適化を改善するための詳細なテクニックを紹介します。必要な方は参考にしてください。
jQuery のパフォーマンスを向上させるための次の最適化のヒントを共有します:
キャッシュ変数
DOM トラバーサルはコストがかかるため、再利用するようにしてください。キャッシング。
// 糟糕 h = $('#element').height(); $('#element').css('height',h-20); // 建议 $element = $('#element'); h = $element.height(); $element.css('height',h-20);
グローバル変数を避ける
JavaScript と同様、jQuery では一般に、変数が関数スコープ内にあることを確認することが最善です。
// 糟糕 $element = $('#element'); h = $element.height(); $element.css('height',h-20); // 建议 var $element = $('#element'); var h = $element.height(); $element.css('height',h-20);
ハンガリー語の命名法を使用します
jQuery オブジェクトを簡単に識別するには、変数の前に $ プレフィックスを追加します。
// 糟糕 var first = $('#first'); var second = $('#second'); var value = $first.val(); // 建议 - 在jQuery对象前加$前缀 var $first = $('#first'); var $second = $('#second'), var value = $first.val();
Var チェーンを使用する (単一 Var モード)
複数の var ステートメントを 1 つのステートメントに結合する 割り当てられていない変数を最後に置くことをお勧めします。
var $first = $('#first'), $second = $('#second'), value = $first.val(), k = 3, cookiestring = 'SOMECOOKIESPLEASE', i, j, myArray = {};
「On」を使用してください
jQuery の新しいバージョンでは、短い on("click") が click() のような関数の代わりに使用されます。 。以前のバージョンでは、on() は binding() でした。 jQuery バージョン 1.7 以降、イベント ハンドラーをアタッチするには on() が推奨される方法です。ただし、一貫性を保つために、単に on() メソッドをまとめて使用することもできます。
// 糟糕 $first.click(function(){ $first.css('border','1px solid red'); $first.css('color','blue'); }); $first.hover(function(){ $first.css('border','1px solid red'); }) // 建议 $first.on('click',function(){ $first.css('border','1px solid red'); $first.css('color','blue'); }) $first.on('hover',function(){ $first.css('border','1px solid red'); })
JavaScript の効率化
一般に、可能な限り関数を組み合わせることが最善です。
// 糟糕 $first.click(function(){ $first.css('border','1px solid red'); $first.css('color','blue'); }); // 建议 $first.on('click',function(){ $first.css({ 'border':'1px solid red', 'color':'blue' }); });
連鎖操作
jQuery でメソッドの連鎖操作を実装するのは非常に簡単です。以下を活用してください。
// 糟糕 $second.html(value); $second.on('click',function(){ alert('hello everybody'); }); $second.fadeIn('slow'); $second.animate({height:'120px'},500); // 建议 $second.html(value); $second.on('click',function(){ alert('hello everybody'); }).fadeIn('slow').animate({height:'120px'},500);
コードの可読性を維持する
コードを合理化しチェーンを使用すると、コードが読みにくくなる可能性があります。ピンチや改行を追加すると、驚くべき効果が得られます。
// 糟糕 $second.html(value); $second.on('click',function(){ alert('hello everybody'); }).fadeIn('slow').animate({height:'120px'},500); // 建议 $second.html(value); $second .on('click',function(){ alert('hello everybody');}) .fadeIn('slow') .animate({height:'120px'},500);
短絡評価の選択
短絡評価は、&& (論理 AND) または || を使用して左から右に評価される式です。 (論理OR)演算子。
// 糟糕 function initVar($myVar) { if(!$myVar) { $myVar = $('#selector'); } } // 建议 function initVar($myVar) { $myVar = $myVar || $('#selector'); }
ショートカットの選択
コードを合理化する 1 つの方法は、コーディング ショートカットを利用することです。
// 糟糕 if(collection.length > 0){..} // 建议 if(collection.length){..}
負荷の高い操作中の要素の分離
DOM 要素に対して多くの操作 (複数の属性または CSS スタイルを連続的に設定する) を実行する予定がある場合は、最初にそれらを分離することをお勧めします。その後、要素が追加されます。
// 糟糕 var $container = $("#container"), $containerLi = $("#container li"), $element = null; $element = $containerLi.first(); //... 许多复杂的操作 // better var $container = $("#container"), $containerLi = $container.find("li"), $element = null; $element = $containerLi.first().detach(); //... 许多复杂的操作 $container.append($element);
ヒントを知ってください
jQuery でメソッドを使用する経験が不足している可能性があります。必ずドキュメントを確認してください。より優れた、または高速なメソッドがある可能性があります。それを使用する方法。
// 糟糕 $('#id').data(key,value); // 建议 (高效) $.data('#id',key,value);
サブクエリを使用して親要素をキャッシュする
前述したように、DOM トラバーサルは負荷の高い操作です。一般的なアプローチは、親要素をキャッシュし、子要素を選択するときにこれらのキャッシュされた要素を再利用することです。
// 糟糕 var $container = $('#container'), $containerLi = $('#container li'), $containerLiSpan = $('#container li span'); // 建议 (高效) var $container = $('#container '), $containerLi = $container.find('li'), $containerLiSpan= $containerLi.find('span');
ユニバーサル セレクターを避ける
子孫セレクターの中にユニバーサル セレクターを置くと、パフォーマンスが低下します。
// 糟糕 $('.container > *'); // 建议 $('.container').children();
暗黙的なユニバーサル セレクターを避ける
ユニバーサル セレクターは暗黙的であり、検出が難しい場合があります。
// 糟糕 $('.someclass :radio'); // 建议 $('.someclass input:radio');
セレクターの最適化
たとえば、Id セレクターは一意である必要があるため、セレクターを追加する必要はありません。
// 糟糕 $('p#myid'); $('p#footer a.myLink'); // 建议 $('#myid'); $('#footer .myLink');
複数の ID セレクターを避ける ここで、ID セレクターは一意である必要があることが強調されています。追加のセレクターを追加する必要はなく、複数の子孫 ID セレクターも必要ありません。
// 糟糕 $('#outer #inner'); // 建议 $('#inner');
最新バージョンを使用してください
通常、新しいバージョンの方が優れており、より軽量で効率的です。明らかに、サポートしたいコードの互換性を考慮する必要があります。たとえば、バージョン 2.0 は IE 6/7/8 をサポートしません。非推奨のメソッドを放棄する 新しいバージョンごとに非推奨のメソッドに注意を払い、これらのメソッドの使用を避けることが非常に重要です。
// 糟糕 $('#outer #inner'); // 建议 $('#inner');
CDN の使用
Google の CND を使用すると、ユーザーに最も近いキャッシュが選択され、迅速に応答することが保証されます。 (Google CNDを利用する場合はご自身でアドレスを検索してください。ここのアドレスは利用できません。jquery公式サイトが提供するCDNを推奨します。)
必要に応じて jQuery と JavaScript ネイティブ コードを組み合わせる
上で述べたように、jQuery は JavaScript です。つまり、jQuery で実行できることはすべてネイティブ コードでも実行できます。 。ネイティブ コード (またはバニラ) は、jQuery ほど読みにくく保守しにくい可能性があり、コードは長くなります。しかし、それはより効率的であることも意味します (通常、基礎となるコードに近づくほど可読性が低くなり、パフォーマンスが向上します。たとえば、アセンブリには当然より強力な人材が必要です)。ネイティブ コードよりも小さく、軽く、効率的なフレームワークは存在しないことに留意してください (注: テスト リンクはもう有効ではありません。テスト コードはオンラインで検索できます)。バニラと jQuery のパフォーマンスの違いを考慮すると、両方の長所を活かし、(可能であれば) jQuery と同等のネイティブ コードを使用することを強くお勧めします。
最後のアドバイス
最後に、jQuery のパフォーマンスの向上とその他の良い提案を目的として、この記事を記録します。このトピックをさらに深く掘り下げたい場合は、非常に楽しいことがわかります。 jQuery は必須ではなく、単なるオプションであることに注意してください。なぜそれを使いたいのか考えてみましょう。 DOM操作?アヤックス?ステンシル? CSSアニメーション?それともセレクターエンジン?おそらく、JavaScript マイクロフレームワークまたは jQuery のカスタマイズされたバージョンの方が良い選択でしょう。
上記は、jQuery のパフォーマンス最適化の改善に関するこの記事の詳細な紹介です。その他の関連チュートリアルについては、jQuery ビデオ チュートリアル をご覧ください。

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。

JavaScriptはブラウザとnode.js環境で実行され、JavaScriptエンジンに依存してコードを解析および実行します。 1)解析段階で抽象的構文ツリー(AST)を生成します。 2)ASTをコンパイル段階のバイトコードまたはマシンコードに変換します。 3)実行段階でコンパイルされたコードを実行します。

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック









