Rumah >hujung hadapan web >tutorial js >Membincangkan isu prestasi kemahiran splicing_javascript tatasusunan rentetan js
Kami tahu bahawa dalam js, penggabungan rentetan ialah salah satu operasi prestasi terendah.
Contohnya:
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.
Contohnya:
var buffer=[],i=0; buffer[i++]="Hello"; //通过相应索引值添加元素比push方法快 buffer[i++]=" World!"; var text=buffer.join("");
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.
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');