Rumah >hujung hadapan web >tutorial js >'innerHTML = ...' vs 'appendChild(txtNode)': Bilakah Anda Harus Menggunakan Setiap?
"innerHTML = ..." vs "appendChild(txtNode)" Di Sebalik Tabir
Prestasi dan kefungsian memanipulasi elemen HTML melalui "innerHTML = ..." dan "appendChild(txtNode)" berbeza dengan ketara.
appendChild(txtNode)
Kaedah ini menambahkan nod teks pada penghujung nod sedia ada tanpa menyebabkan pembinaan semula DOM yang lengkap. Ia merupakan kaedah yang cekap untuk menambah kandungan pada elemen, kerana ia mengelakkan overhed menghurai HTML dan membina semula DOM.
innerHTML = ...
Sebaliknya, "innerHTML = ..." mengubah suai kandungan HTML elemen dengan menggabungkan rentetan ke HTML sedia ada. Ini mencetuskan pembinaan semula lengkap DOM dalam elemen, yang boleh mahal dari segi pengiraan. Selain itu, ia membatalkan sebarang rujukan kepada nod anak sebelumnya dalam elemen.
ReFlow
Kedua-dua kaedah mencetuskan "ReFlow" - proses pengiraan semula reka letak elemen selepas saiz atau kedudukannya berubah.
Kecekapan Pertimbangan
Untuk menambahkan, "appendChild(txtNode)" secara amnya lebih cekap kerana ia mengelakkan penghuraian dan bina semula overhed yang dikaitkan dengan "innerHTML = ...".
Kesan Sampingan
Mengubah suai "innerHTML" mempunyai kesan sampingan yang ketara: ia membatalkan rujukan kepada nod anak dalam elemen yang diubah suai. Sebaliknya, "appendChild(txtNode)" mengekalkan rujukan ini.
Kaedah Alternatif
Selain "appendChild(txtNode)", kaedah alternatif untuk menambahkan kandungan termasuk:
Pilihan kaedah bergantung pada keperluan khusus dan ciri prestasi yang diingini.
Atas ialah kandungan terperinci 'innerHTML = ...' vs 'appendChild(txtNode)': Bilakah Anda Harus Menggunakan Setiap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!