Rumah hujung hadapan web tutorial js Tujuh perkara yang perlu anda lakukan untuk meningkatkan prestasi jQuery_jquery

Tujuh perkara yang perlu anda lakukan untuk meningkatkan prestasi jQuery_jquery

May 16, 2016 pm 03:20 PM
jquery prestasi

Lakukan tujuh perkara untuk membantu anda meningkatkan prestasi jQuery Adakah anda ingin tahu yang mana?

1. Tambah Di Luar Gelung

Apa-apa sahaja yang melibatkan DOM mempunyai harga. Jika anda menambahkan banyak elemen pada DOM, anda perlu menambahkan kesemuanya sekali gus daripada melakukannya beberapa kali. Masalah biasa timbul apabila menambahkan elemen pada gelung.

$.each( myArray, function( i, item ) {

  var newListItem = "<li>" + item + "</li>";
 
 $( "#ballers" ).append( newListItem );
 });
Salin selepas log masuk

Teknik biasa ialah menggunakan serpihan dokumen. Pada setiap lelaran gelung, tambahkan elemen pada serpihan dan bukannya elemen DOM. Apabila gelung tamat, tambahkan serpihan pada elemen 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 );
Salin selepas log masuk

Satu lagi helah mudah ialah membina rentetan secara berterusan pada setiap lelaran gelung. Apabila gelung tamat, tetapkan HTML elemen DOM kepada rentetan ini.

var myHtml = "";

$.each( myArray, function( i, item ) {

  myHtml += "<li>" + item + "</li>";

});

$( "#ballers" ).html( myHtml );

Salin selepas log masuk

Sudah tentu ada teknik lain yang anda boleh cuba. Tapak yang dipanggil jsperf menyediakan saluran yang baik untuk menguji sifat ini. Tapak ini membolehkan anda menanda aras setiap teknik dan memvisualisasikan hasil prestasi merentas platformnya.

2. Panjang Cache Semasa Gelung

Dalam gelung untuk, jangan akses sifat kepanjangan tatasusunan setiap kali ia harus dicache terlebih dahulu.

var myLength = myArray.length;

for ( var i = 0; i < myLength; i++ ) {

  // do stuff

}
Salin selepas log masuk

3. Tanggalkan Elemen untuk Bekerja dengannya

Memanipulasi DOM adalah perlahan, jadi anda mahu melakukannya dengan penjajaran sesedikit mungkin. jQuery memperkenalkan kaedah yang dipanggil detach() dalam versi 1.4 untuk membantu menyelesaikan masalah ini, yang membolehkan anda menanggalkan elemen daripada DOM apabila beroperasi padanya.

var $table = $( "#myTable" );
var $parent = $table.parent();

$table.detach();

// ... add lots and lots of rows to table

$parent.append( $table );

Salin selepas log masuk

4. Jangan Bertindak Atas Elemen Tidak Hadir

Jika anda merancang untuk menjalankan banyak kod pada pemilih kosong, jQuery tidak akan memberi anda sebarang petunjuk - ia akan terus melaksanakan seolah-olah tiada ralat berlaku. Terpulang kepada anda untuk mengesahkan berapa banyak elemen yang terkandung dalam pemilih.

// Bad: This runs three functions before it
// realizes there's nothing in the selection
$( "#nosuchthing" ).slideUp();

// Better:
var $mySelection = $( "#nosuchthing" );

if ( $mySelection.length ) {

  $mySelection.slideUp();

}

// Best: Add a doOnce plugin.
jQuery.fn.doOnce = function( func ) {

  this.length && func.apply( this );

  return this;

}

$( "li.cartitems" ).doOnce(function() {&#8232;

  // make it ajax! \o/&#8232;

});

Salin selepas log masuk

Panduan ini amat berguna untuk widget UI jQuery yang memerlukan banyak overhed apabila pemilih tidak mengandungi elemen.

5. Pemilih Optimumkan

Pengoptimuman pemilih tidak begitu penting seperti pada masa lalu, kerana banyak penyemak imbas melaksanakan kaedah document.querySelectorAll() dan jQuery mengalihkan beban pemilih kepada penyemak imbas. Tetapi masih ada beberapa petua yang perlu diingat.

Pemilih berasaskan ID

Adalah yang terbaik untuk memulakan pemilih anda dengan ID.

// Fast:
 $( "#container div.robotarm" );
 
 // Super-fast:
 $( "#container" ).find( "div.robotarm" );
Salin selepas log masuk

Menggunakan kaedah .find() akan menjadi lebih pantas kerana pemilih pertama telah diproses tanpa melalui enjin pemilih yang bising--ID-Only pemilih sudah menggunakan kaedah document.getElementById() Pemprosesan adalah pantas kerana ia berasal dari pelayar.

Kekhususan

Terangkan bahagian kanan pemilih dengan seberapa terperinci yang mungkin, dan lakukan sebaliknya untuk bahagian kiri.

// Unoptimized:
$( "div.data .gonzalez" );
 
// Optimized:
 $( ".data td.gonzalez" );
Salin selepas log masuk

Cuba gunakan bentuk tag.class untuk menerangkan pemilih di sebelah kanan pemilih dan cuba gunakan hanya tag atau .class di sebelah kiri.

Elakkan penggunaan kekhususan yang berlebihan

 $( ".data table.attendees td.gonzalez" );
 
 // Better: Drop the middle if possible.
 $( ".data td.gonzalez" );
Salin selepas log masuk

Mendapatkan "DOM" sentiasa membantu meningkatkan prestasi pemilih kerana enjin pemilih tidak perlu melakukan banyak lelaran semasa mencari elemen.

Elakkan menggunakan pemilih generik

Prestasi akan sangat terjejas jika pemilih padan secara eksplisit atau tersirat dalam julat yang tidak ditentukan.

$( ".buttons > *" ); // Extremely expensive.
$( ".buttons" ).children(); // Much better.
 
 $( ".category :radio" ); // Implied universal selection.
$( ".category *:radio" ); // Same thing, explicit now.
$( ".category input:radio" ); // Much better.
复制代码
6. Use Stylesheets for Changing CSS on Many Elements
Salin selepas log masuk

Jika anda menggunakan kaedah .css() untuk menukar CSS lebih daripada 20 elemen, anda harus mempertimbangkan untuk menambah teg gaya pada halaman sebagai alternatif. Tindakan sedemikian boleh meningkatkan kelajuan hampir 60%.

// Fine for up to 20 elements, slow after that:
$( "a.swedberg" ).css( "color", "#0769ad" );

// Much faster:
$( "<style type=\"text/css\">a.swedberg { color: #0769ad }</style>")
  .appendTo( "head" );

Salin selepas log masuk

7. Jangan Anggap jQuery sebagai Kotak Hitam

Di atas ialah tujuh perkara yang perlu anda lakukan untuk meningkatkan prestasi jQuery.

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1665
14
Tutorial PHP
1269
29
Tutorial C#
1249
24
Perbandingan prestasi Windows 10 vs. Windows 11: Mana satu yang lebih baik? Perbandingan prestasi Windows 10 vs. Windows 11: Mana satu yang lebih baik? Mar 28, 2024 am 09:00 AM

Perbandingan prestasi Windows 10 vs. Windows 11: Mana satu yang lebih baik? Dengan pembangunan dan kemajuan teknologi yang berterusan, sistem pengendalian sentiasa dikemas kini dan dinaik taraf. Sebagai salah satu pembangun sistem pengendalian terbesar di dunia, siri sistem pengendalian Microsoft Windows sentiasa menarik perhatian ramai pengguna. Pada tahun 2021, Microsoft mengeluarkan sistem pengendalian Windows 11, yang mencetuskan perbincangan dan perhatian yang meluas. Jadi, apakah perbezaan prestasi antara Windows 10 dan Windows 11?

Perbandingan bahasa PHP dan Go: perbezaan prestasi yang besar Perbandingan bahasa PHP dan Go: perbezaan prestasi yang besar Mar 26, 2024 am 10:48 AM

PHP dan Go ialah dua bahasa pengaturcaraan yang biasa digunakan, dan ia mempunyai ciri dan kelebihan yang berbeza. Antaranya, perbezaan prestasi merupakan isu yang dibimbangkan oleh semua orang. Artikel ini akan membandingkan bahasa PHP dan Go dari perspektif prestasi, dan menunjukkan perbezaan prestasi mereka melalui contoh kod tertentu. Mula-mula, mari kita perkenalkan secara ringkas ciri asas PHP dan bahasa Go. PHP ialah bahasa skrip yang pada asalnya direka untuk pembangunan web Ia mudah dipelajari dan digunakan dan digunakan secara meluas dalam bidang pembangunan web. Bahasa Go ialah bahasa tersusun yang dibangunkan oleh Google.

Prestasi larian tempatan perkhidmatan Embedding melebihi OpenAI Text-Embedding-Ada-002, yang sangat mudah! Prestasi larian tempatan perkhidmatan Embedding melebihi OpenAI Text-Embedding-Ada-002, yang sangat mudah! Apr 15, 2024 am 09:01 AM

Ollama ialah alat super praktikal yang membolehkan anda menjalankan model sumber terbuka dengan mudah seperti Llama2, Mistral dan Gemma secara tempatan. Dalam artikel ini, saya akan memperkenalkan cara menggunakan Ollama untuk mengvektorkan teks. Jika anda belum memasang Ollama secara tempatan, anda boleh membaca artikel ini. Dalam artikel ini kita akan menggunakan model nomic-embed-text[2]. Ia ialah pengekod teks yang mengatasi prestasi OpenAI text-embedding-ada-002 dan text-embedding-3-small pada konteks pendek dan tugas konteks panjang. Mulakan perkhidmatan nomic-embed-text apabila anda telah berjaya memasang o

Pembalikan nilai kunci tatasusunan PHP: analisis perbandingan prestasi kaedah yang berbeza Pembalikan nilai kunci tatasusunan PHP: analisis perbandingan prestasi kaedah yang berbeza May 03, 2024 pm 09:03 PM

Perbandingan prestasi kaedah membalik nilai kunci tatasusunan PHP menunjukkan bahawa fungsi array_flip() berprestasi lebih baik daripada gelung for dalam tatasusunan besar (lebih daripada 1 juta elemen) dan mengambil masa yang lebih singkat. Kaedah gelung untuk membalikkan nilai kunci secara manual mengambil masa yang agak lama.

Membandingkan prestasi sistem Win11 dan Win10, yang manakah lebih baik? Membandingkan prestasi sistem Win11 dan Win10, yang manakah lebih baik? Mar 27, 2024 pm 05:09 PM

Sistem pengendalian Windows sentiasa menjadi salah satu sistem pengendalian yang paling banyak digunakan pada komputer peribadi, dan Windows 10 telah lama menjadi sistem pengendalian perdana Microsoft sehingga baru-baru ini apabila Microsoft melancarkan sistem Windows 11 baharu. Dengan pelancaran sistem Windows 11, orang ramai mula berminat dengan perbezaan prestasi antara sistem Windows 10 dan Windows 11 yang mana satu yang lebih baik antara kedua-duanya? Pertama, mari kita lihat W

Perbandingan prestasi rangka kerja Java yang berbeza Perbandingan prestasi rangka kerja Java yang berbeza Jun 05, 2024 pm 07:14 PM

Perbandingan prestasi rangka kerja Java yang berbeza: Pemprosesan permintaan REST API: Vert.x adalah yang terbaik, dengan kadar permintaan 2 kali SpringBoot dan 3 kali Dropwizard. Pertanyaan pangkalan data: HibernateORM SpringBoot adalah lebih baik daripada Vert.x dan ORM Dropwizard. Operasi caching: Pelanggan Hazelcast Vert.x lebih unggul daripada mekanisme caching SpringBoot dan Dropwizard. Rangka kerja yang sesuai: Pilih mengikut keperluan aplikasi Vert.x sesuai untuk perkhidmatan web berprestasi tinggi, SpringBoot sesuai untuk aplikasi intensif data, dan Dropwizard sesuai untuk seni bina perkhidmatan mikro.

Apakah kesan fungsi C++ terhadap prestasi program? Apakah kesan fungsi C++ terhadap prestasi program? Apr 12, 2024 am 09:39 AM

Kesan fungsi pada prestasi program C++ termasuk overhed panggilan fungsi, pembolehubah tempatan dan overhed peruntukan objek: Overhed panggilan fungsi: termasuk peruntukan bingkai tindanan, pemindahan parameter dan pemindahan kawalan, yang mempunyai kesan ketara pada fungsi kecil. Overhed pembolehubah tempatan dan peruntukan objek: Sebilangan besar pembolehubah tempatan atau penciptaan objek dan pemusnahan boleh menyebabkan limpahan tindanan dan kemerosotan prestasi.

Bagaimana untuk mengoptimumkan prestasi program berbilang benang dalam C++? Bagaimana untuk mengoptimumkan prestasi program berbilang benang dalam C++? Jun 05, 2024 pm 02:04 PM

Teknik berkesan untuk mengoptimumkan prestasi berbilang benang C++ termasuk mengehadkan bilangan utas untuk mengelakkan perbalahan sumber. Gunakan kunci mutex ringan untuk mengurangkan perbalahan. Optimumkan skop kunci dan minimumkan masa menunggu. Gunakan struktur data tanpa kunci untuk menambah baik keselarasan. Elakkan sibuk menunggu dan maklumkan urutan ketersediaan sumber melalui acara.

See all articles