Kita tahu bahwa di JS, gabungan string adalah salah satu operasi berkinerja terendah.
Misalnya:
Salinan kode adalah sebagai berikut:
var text = "hello";
Teks+= "Dunia!";
Browser awal tidak mengoptimalkan operasi ini.
Karena string tidak dapat diubah, ini berarti membuat string menengah untuk menyimpan hasil koneksi. Seringkali menciptakan dan menghancurkan string di latar belakang, kinerja pembatasan sangat buruk.
Oleh karena itu, optimasi dapat dilakukan dengan menggunakan objek array.
Misalnya:
var buffer = [], i = 0; buffer [i ++] = "halo"; // Menambahkan elemen melalui nilai indeks yang sesuai lebih cepat dari buffer metode push [i ++] = "World!"; var text = buffer.join ("");Di browser awal, string menengah tidak dibuat dan dihancurkan, dan dalam kasus sejumlah besar gabungan string, teknik ini telah terbukti jauh lebih cepat daripada menggunakan metode penambahan.
Saat ini, optimalisasi browser string telah mengubah situasi koneksi string. Safari, Opera, Chrome, Firefox, dan IE8 semuanya menunjukkan kinerja yang lebih baik saat menggunakan operator tambahan. Namun, versi sebelum IE8 belum dioptimalkan, sehingga metode array masih valid. Ini tidak berarti bahwa ketika string terhubung, kita perlu melakukan deteksi browser. Apa yang perlu Anda pertimbangkan saat memutuskan cara terhubung adalah ukuran dan jumlah string.
Ketika string relatif kecil (kurang dari 20 karakter) dan jumlah koneksi kecil (kurang dari 1000), semua browser dapat dengan mudah menyelesaikan koneksi dalam waktu kurang dari 1 milidetik menggunakan operator tambahan. Saat meningkatkan jumlah atau ukuran string, kinerja di IE7 akan berkurang secara signifikan. Ketika ukuran string meningkat, perbedaan kinerja antara operator tambahan dan teknik komponen di Firefox akan menjadi lebih kecil. Dengan meningkatnya jumlah string, perbedaan kinerja antara operator tambahan dan teknik komponen di Safari akan menjadi lebih kecil. Operator aditif di Chrome dan Opera selalu mempertahankan timbal saat mengubah jumlah atau ukuran string.
Oleh karena itu, karena kinerja yang tidak konsisten dari masing -masing browser, pemilihan teknologi tergantung pada situasi aktual dan browser yang Anda hadapi.
Dalam kebanyakan kasus, operator tambahan lebih disukai; Teknologi array sepadan jika pengguna terutama menggunakan IE6 atau 7 dan memiliki ukuran string besar atau jumlah besar.
Secara umum, jika itu adalah string semantik, array tidak boleh digunakan, seperti:
'Halo, nama saya' + nama;
Jika string adalah "pengulangan dari situasi serupa", disarankan untuk menggunakan array, seperti:
var array = []; untuk (i = 0; i <panjang; i ++) {array [i] = '<li>' + Daftar [i] + '</li'>; } document.getElementById ('di suatu tempat'). innerHtml = array.join ('/n');Itu saja untuk perbandingan kinerja koneksi array string JS, saya harap ini akan membantu semua orang.