Rumah hujung hadapan web tutorial js Javascript createElement和innerHTML增加页面元素的性能对比_javascript技巧

Javascript createElement和innerHTML增加页面元素的性能对比_javascript技巧

May 16, 2016 pm 06:46 PM
Perbandingan prestasi

最近遇到js的效率问题,是关于在页面中新增元素的问题。
假设我们有页面如下:

复制代码 代码如下:







<script> <BR>// 脚本位置 <BR></script>


现在,我们要往div1中添加对象,大家都知道在为web页面增加一个元素时可以使用如下代码:
//方法1
div1.innerHTML = '测试';
或者:
//方法2
var a = document.createElement('a');
a.innertText = '测试';
div1.appendChild(a);
在网上搜索到一个探讨js效率问题的文章,其大概意思是说方法2的效率高,其对比代码如下:
复制代码 代码如下:

// 方法1
function init(){
var staDate = new Date();
var doc = window.document;
for(var i=0;ivar str="
test
";
container.innerHTML += str;
}
alert(new Date - staDate);
}
//方法2
function init(){
var staDate = new Date();
var doc = window.document;
for(var i=0;ivar oDiv = doc.createElement("div");
var oText = doc.createTextNode("text");
oDiv.appendChild(oText);
container.appendChild(oDiv);
oDiv.style.id = "div_"+i;
oDiv.style.width = "100px";
oDiv.style.height = "20px";
oDiv.style.backgroundColor = "#eee";
}
alert(new Date - staDate);
}

其页面中有:


从执行效果来看方案2要比方案1快10倍左右,到底这是不是真的呢?其实上面的测试代码是有待商榷的,且看其方法1中的循环代码:
复制代码 代码如下:

for(var i=0;ivar str="
test
";
container.innerHTML += str;
}

其中有很多字符串操作,而且除了使用+号来连接字符串外,还使用了+=操作符,这就是问题的所在了,在javascript中这种操作字符串的做法是严重影响效率的,所以使用上面的方法来测试createEmenent和innerHTML的效率对innerHTML是不公平的, 据此看来很可能是字符串操作吃掉了innerHTML的性能,于是写了下面的测试代码:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

经测试发现:
1、在创建的对象较少(0-大约10左右)时,innerHTML和createElement效率差不多,测试值悠忽不定;
2、在创建对象多于20时,innerHTML要比createElement效率高很多,平均测试差不多createElement耗时是innerHTML的两倍。
总结:其实效率也在于编写的代码,在知道可用的API的效率后,怎么编写代码也是非常重要的,否则应由的执行效率不能体现出来,就如上面从网上搜到的那些代码,得出一个与事实相悖的结论。
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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

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)

Perbandingan prestasi pemproses Kirin 8000: Bersaing dengan pemproses Snapdragon Perbandingan prestasi pemproses Kirin 8000: Bersaing dengan pemproses Snapdragon Mar 23, 2024 pm 01:36 PM

Dalam pasaran telefon pintar semasa, pemproses boleh dikatakan sebagai salah satu fokus persaingan bagi pengeluar telefon bimbit utama. Sebagai "otak" telefon bimbit, prestasi pemproses secara langsung mempengaruhi kelajuan berjalan telefon mudah alih, keupayaan berbilang tugas dan pengalaman permainan. Pada masa ini, pemproses Kirin 8000, sebagai peralatan telefon bimbit utama Huawei, telah menarik perhatian ramai. Jadi, apakah kelebihan dan kekurangannya berbanding dengan pemproses Snapdragon? Pertama sekali, dari perspektif prestasi, pemproses Kirin 8000 dihasilkan menggunakan proses TSMC 5nm terkini Ia mempunyai teknologi proses yang lebih maju dan prestasi yang lebih baik.

Analisis perbandingan prestasi vivox100 dan vivox100pro Analisis perbandingan prestasi vivox100 dan vivox100pro Mar 18, 2024 pm 10:12 PM

Analisis perbandingan prestasi vivoX100 dan vivoX100Pro Apabila persaingan dalam pasaran telefon pintar menjadi semakin sengit, jenama utama terus melancarkan produk baharu untuk memenuhi keperluan pengguna. Sebagai jenama telefon mudah alih yang terkenal, vivo telah melancarkan banyak produk yang diterima ramai sejak beberapa tahun kebelakangan ini, antaranya vivoX100 dan vivoX100Pro merupakan produk baharu yang dinanti-nantikan. Apakah perbezaan antara kedua-dua telefon bimbit dari segi reka bentuk penampilan, konfigurasi prestasi, fungsi kamera dan lain-lain? Hari ini kita akan membandingkan dan menganalisis vivoX100

Analisis perbandingan pemproses Apple dan Snapdragon 8gen2 Analisis perbandingan pemproses Apple dan Snapdragon 8gen2 Mar 18, 2024 pm 04:45 PM

Analisis perbandingan pemproses Apple dan Snapdragon 8gen2 Dengan pembangunan berterusan peranti pintar mudah alih, pemproses, sebagai komponen teras prestasi peranti, sentiasa menarik perhatian ramai. Apple dan Qualcomm sentiasa menjadi peneraju dalam bidang pemproses mudah alih, melancarkan produk pemproses mereka sendiri, iaitu pemproses Apple dan pemproses Snapdragon. Antaranya, pemproses Apple terkenal dengan prestasi yang berkuasa dan kawalan penggunaan kuasa yang sangat baik, manakala pemproses Qualcomm Snapdragon telah memenangi hati pengguna untuk teknologi komunikasi yang sangat baik dan serba boleh. Artikel ini akan menyemak pemproses Apple dan Snapdragon 8g

Perbandingan prestasi Ubuntu Bash: Edisi Ulang Tahun Ubuntu lwn Win10 Perbandingan prestasi Ubuntu Bash: Edisi Ulang Tahun Ubuntu lwn Win10 Jan 04, 2024 pm 09:36 PM

Pada awal tahun ini, apabila Microsoft dan Canonical mengeluarkan ruang pengguna Windows 10 Bash dan Ubuntu, saya cuba melakukan beberapa ujian prestasi awal pada Ubuntu pada Windows 10 berbanding Ubuntu asli Kali ini saya menerbitkan lebih lanjut mengenai perbandingan penanda aras antara tulen asli Ubuntu dan Windows 10. Ujian subsistem Linux untuk Windows menyelesaikan semua ujian dan dikeluarkan dengan Kemas Kini Ulang Tahun Windows 10. Ruang pengguna Ubuntu lalai masih Ubuntu14.04, tetapi ia boleh dinaik taraf kepada 16.04. Jadi ujian pertama kali diuji pada 14.04, dan selepas selesai, sistem akan dinaik taraf kepada 16.04

Perbandingan prestasi antara Dimensity 8200 dan Snapdragon: Mana yang lebih baik? Perbandingan prestasi antara Dimensity 8200 dan Snapdragon: Mana yang lebih baik? Mar 18, 2024 pm 04:27 PM

Perbandingan prestasi antara Dimensity 8200 dan Snapdragon: Mana yang lebih baik Dalam beberapa tahun kebelakangan ini, memandangkan pasaran telefon pintar semakin kompetitif, pengeluar cip utama juga sentiasa memperkenalkan yang baharu, berusaha untuk mencapai kejayaan yang lebih besar dalam prestasi. Antaranya, siri Dimensity 8200 MediaTek dan siri Snapdragon Qualcomm secara meluas dianggap sebagai salah satu cip paling cemerlang dalam pasaran telefon pintar semasa. Jadi, antara Dimensity 8200 dan Snapdragon, yang manakah lebih baik? Hari ini kita akan membandingkan prestasi kedua-dua pemproses ini untuk mengetahui. Pertama sekali, mari kita fahami Dimensity 820 dahulu

Membandingkan kemudahan perkongsian sistem antara versi Windows 10 dan Windows 7 Membandingkan kemudahan perkongsian sistem antara versi Windows 10 dan Windows 7 Jan 12, 2024 pm 04:39 PM

Versi rasmi win10 yang dinanti-nantikan oleh semua orang telah dikeluarkan Bagi pelajar yang menggunakan win7, mereka pasti bergelut sama ada untuk menaik taraf sistem komputer mereka kepada win10 Adakah peningkatan itu lebih baik daripada sistem win7. Adakah ia menyokong semua perisian yang biasa digunakan? Mana satu lebih baik, win7 atau win10? Apakah perbezaan antara mereka? Sehubungan itu, editor memberikan beberapa jawapan kepada perbandingan antara win10 dan win7. Microsoft telah melancarkan sistem Win10 yang terkini, dan ramai pengguna komputer turut memberi perhatian kepada Win10. Semua orang juga tertanya-tanya, apakah perbezaan antara Windows 10 dan Win 7? Mana satu lebih mudah digunakan, win7 atau windows10? Sistem Win7 adalah stabil dan selamat pada masa ini merupakan sistem Windo yang paling popular dengan kebanyakan pengguna.

MySQL lwn MongoDB: Perbandingan prestasi dua sistem pangkalan data MySQL lwn MongoDB: Perbandingan prestasi dua sistem pangkalan data Jul 16, 2023 am 08:45 AM

MySQL lwn MongoDB: Perbandingan Prestasi Dua Sistem Pangkalan Data Dengan pembangunan Internet dan pertumbuhan volum data yang berterusan, prestasi dan kebolehskalaan pangkalan data menjadi semakin penting. MySQL dan MongoDB adalah dua sistem pangkalan data yang biasa digunakan. Mereka mempunyai prestasi yang berbeza apabila mengendalikan volum data yang besar dan permintaan serentak yang tinggi. Artikel ini akan membandingkan prestasi MySQL dan MongoDB dan menggambarkan perbezaannya melalui contoh kod. MySQL ialah pangkalan data hubungan yang terkenal dengan kestabilan dan ciri matangnya

Perbandingan prestasi rangka kerja Golang: keputusan ujian prestasi berwibawa dalam industri Perbandingan prestasi rangka kerja Golang: keputusan ujian prestasi berwibawa dalam industri Jun 05, 2024 pm 03:20 PM

Ujian penanda aras berwibawa menunjukkan bahawa Echo, Gin, Fasthttp, Iris dan Buffalo ialah rangka kerja Go yang berprestasi terbaik. Titik akhir EchoAPI mempunyai masa tindak balas terpantas, diikuti oleh GinWebUI, dan masa tindak balas tugas berjadual Fasthttp adalah yang paling singkat. Amalan terbaik termasuk menggunakan caching, mod konkurensi dan pengoptimuman kod.

See all articles