Rumah > hujung hadapan web > tutorial js > Membincangkan isu prestasi kemahiran splicing_javascript tatasusunan rentetan js

Membincangkan isu prestasi kemahiran splicing_javascript tatasusunan rentetan js

WBOY
Lepaskan: 2016-05-16 16:34:19
asal
1341 orang telah melayarinya

Kami tahu bahawa dalam js, penggabungan rentetan ialah salah satu operasi prestasi terendah.
Contohnya:

Salin kod Kod adalah seperti berikut:

var text="Hello";
teks =" Dunia!";
Pelayar awal tidak mengoptimumkan operasi ini.

Oleh kerana rentetan tidak boleh diubah, ini bermakna mencipta rentetan perantaraan untuk menyimpan hasil penggabungan. Kerap mencipta dan memusnahkan rentetan di latar belakang menghasilkan prestasi yang sangat rendah.

Oleh itu, objek tatasusunan boleh digunakan untuk pengoptimuman.

Contohnya:

var buffer=[],i=0; 
buffer[i++]="Hello";  //通过相应索引值添加元素比push方法快 
buffer[i++]=" World!"; 
var text=buffer.join("");
Salin selepas log masuk
Dalam penyemak imbas awal, tiada penciptaan dan pemusnahan rentetan perantaraan Dalam kes penyambungan rentetan yang banyak, teknik ini telah terbukti lebih pantas daripada menggunakan penambahan.


Pada masa kini, pengoptimuman pelayar rentetan telah mengubah keadaan penggabungan rentetan. Safari, Opera, Chrome, Firefox dan IE8 semuanya menunjukkan prestasi yang lebih baik menggunakan pengendali tambahan. Walau bagaimanapun, versi sebelum IE8 tidak dioptimumkan, jadi kaedah tatasusunan masih berfungsi. Ini tidak bermakna kita perlu melakukan pengesanan penyemak imbas apabila penyambungan rentetan. Perkara yang perlu dipertimbangkan semasa memutuskan cara menggabungkan ialah saiz dan bilangan rentetan.

Apabila rentetan agak kecil (kurang daripada 20 aksara) dan bilangan sambungan juga kecil (kurang daripada 1000), semua penyemak imbas boleh melengkapkan sambungan dengan mudah dalam masa kurang daripada 1 milisaat menggunakan operator penambahan. Prestasi menurun dengan ketara dalam IE7 apabila meningkatkan bilangan atau saiz rentetan. Apabila saiz rentetan meningkat, perbezaan prestasi antara operator penambahan dan teknik gubahan tatasusunan dalam Firefox menjadi lebih kecil. Apabila bilangan rentetan bertambah, perbezaan prestasi antara operator penambahan dan teknik gubahan tatasusunan dalam Safari menjadi lebih kecil. Pengendali tambahan dalam Chrome dan Opera sentiasa mendahului apabila menukar nombor atau saiz rentetan.

Oleh itu, disebabkan prestasi yang tidak konsisten di bawah pelbagai pelayar, teknologi yang dipilih bergantung pada situasi sebenar dan pelayar yang anda hadapi.

Dalam kebanyakan kes, pengendali penambahan lebih disukai jika pengguna menggunakan IE6 atau 7, dan saiz rentetannya besar atau banyak, maka teknik tatasusunan adalah berbaloi.


Secara umumnya, jika ia adalah rentetan semantik, Array tidak boleh digunakan, seperti:
'Helo, nama saya ialah ' nama

Jika rentetan ialah "pengulangan situasi yang serupa", adalah disyorkan untuk menggunakan Tatasusunan, seperti:

var array = []; 
for (i = 0; i < length; i++) { 
array[i] = '<li>' + list[i] + '</li'>; 
} 
document.getElementById('somewhere').innerHTML = array.join('\n');
Salin selepas log masuk
Perbandingan prestasi sambungan tatasusunan rentetan js diperkenalkan di sini. Saya harap ia akan membantu semua orang.

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