Adakah nilai panjang perlu dicache dalam petua for loop_javascript

WBOY
Lepaskan: 2016-05-16 15:48:41
asal
2036 orang telah melayarinya

Sama ada nilai panjang perlu dicache dalam gelung untuk, saya percaya ramai pengaturcara telah bergelut dengan isu ini. Sila lihat di bawah untuk analisis isu ini:

Dalam pengoptimuman prestasi JS, terdapat pengoptimuman kecil biasa, iaitu

// 不缓存 
for (var i = 0; i < arr.length; i++) {
  ...
}

// 缓存
var len = arr.length;
for (var i = 0; i < len; i++) {
  ...
}

Salin selepas log masuk

Jadi, patutkah kita meninggalkan cara penulisan ini?

Sila lihat contoh:

Salin kod Kod adalah seperti berikut:

var divs = document.getElementsByTagName("div"), i, div ;
untuk( i=0; i div = document.createElement("div");
​ document.body.appendChild("div");
}

Kod di atas akan menyebabkan gelung tak terhingga: baris pertama kod akan memperoleh senarai node semua elemen div Memandangkan senarai node adalah dinamik, selagi div baharu ditambahkan pada halaman, gelung untuk seterusnya akan dikemas kini div sekali lagi .length dinilai, jadi i dan divs.length akan dinaikkan pada masa yang sama setiap kali Akibatnya, nilai mereka tidak akan sama, mewujudkan gelung tak terhingga.

Jadi, jika anda ingin mengulangi senarai node, sebaiknya mulakan pembolehubah kedua menggunakan atribut panjang, dan kemudian bandingkan lelaran dengan pembolehubah Kod yang diubah suai adalah seperti berikut:

Salin kod Kod adalah seperti berikut:

var divs = document.getElementsByTagName("div"), i, div ,len ;
untuk(i=0;len=divs.length;i div = document.createElement("div");
​document.body.appendChild("div");
}

Dalam contoh ini, len dimulakan Memandangkan len menyimpan petikan divs.length pada permulaan gelung, ia akan mengelakkan masalah gelung tak terhingga yang berlaku dalam contoh sebelumnya nodelist, Adalah lebih selamat untuk menggunakan kaedah ini.

Ringkasan:
1. Sama ada menyimpan cache nilai panjang bermanfaat kepada pengoptimuman prestasi ialah perkara yang perlu dinilai berdasarkan situasi khusus Secara umumnya, mengurangkan akses kepada DOM masih bermanfaat 2. Apabila anda perlu mengendalikan senarai node, adalah disyorkan untuk menyimpan nilai panjang untuk mengelakkan gelung tak terhingga.

Kandungan di atas adalah pengenalan lengkap sama ada nilai panjang perlu dicache dalam gelung untuk.

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan