"innerHTML = ..." vs "appendChild(txtNode)"
Dalam bidang pembangunan web, mengubah suai kandungan HTML elemen adalah tugas biasa. Dua kaedah yang digunakan secara meluas untuk tujuan ini ialah penetapan innerHTML dan menambahkan nod teks. Walau bagaimanapun, kaedah ini mempunyai ciri tersendiri yang memberi kesan kepada prestasi dan tingkah laku.
Tugasan HTML dalaman
Menetapkan sifat innerHTML secara langsung mengubah suai keseluruhan kandungan elemen sasaran. Proses ini melibatkan menghuraikan rentetan HTML yang disediakan dan membina semula struktur DOM elemen. Akibatnya, penetapan innerHTML mencetuskan aliran semula lengkap elemen dan turunannya, yang berpotensi menjejaskan reka letak dan pemaparan halaman.
Selain itu, penetapan innerHTML menyahsahkan semua rujukan sedia ada kepada nod anak dalam elemen sasaran. Ini kerana nod lama pada dasarnya digantikan dengan nod yang baru dijana.
appendChild()
Sebaliknya, menambahkan nod teks melalui appendChild() tidak menyebabkan bina semula DOM penuh. Sebaliknya, ia hanya menambahkan kandungan teks yang ditentukan pada elemen sedia ada. Ini menghasilkan pengaliran semula yang lebih setempat, hanya menjejaskan kawasan terdekat tempat teks itu ditambahkan.
Tidak seperti tugasan innerHTML, appendChild() mengekalkan rujukan kepada nod sedia ada. Ini kerana ia tidak mengubah suai struktur DOM; sebaliknya, ia menambah kandungan baharu tanpa mengganggu pepohon sedia ada.
Pertimbangan Prestasi
Secara amnya, appendChild() dianggap lebih cekap untuk menambahkan kandungan pada elemen sedia ada. Memandangkan ia mengelakkan kos menghurai dan membina semula DOM, ia menanggung kos lebih rendah. Walau bagaimanapun, dalam senario tertentu, seperti menggantikan keseluruhan kandungan elemen, tugasan innerHTML mungkin lebih mudah.
Pilihan Alternatif
Selain innerHTML dan appendChild( ), terdapat beberapa kaedah alternatif untuk memanipulasi kandungan DOM:
Atas ialah kandungan terperinci innerHTML = '...' vs appendChild(txtNode): Bilakah Anda Harus Menggunakan Setiap Kaedah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!