Gunakan kelas CSS dan bukannya gaya inline
Apabila gaya DOM yang menggayakan, lebih baik menggunakan kelas CSS dan bukannya gaya inline. Kelas CSS mudah diubahsuai dan digunakan semula, sementara gaya inline sukar untuk dikendalikan dan diselenggara.Sebagai contoh, bukannya menulis:
document.getElementById('button').style.backgroundColor = 'red';
.button-style { background-color: red; }
let cardButton = document.getElementById('button'); cardButton.classList.add('button-style');
pemilih cache
Cache pemilih dapat meningkatkan kecekapan kod operasi DOM. Simpan hasil pemilih dalam pembolehubah untuk digunakan semula dan elakkan pertanyaan berulang DOM.Sebagai contoh, bukannya menulis:
document.querySelector('#button').addEventListener('click', function() { // do something }); document.querySelector('#button').className = "enabled";
const myButton = document.querySelector('#button'); myButton.addEventListener('click', function() { // do something }); myButton.className = "enabled";
Menggunakan delegasi acara
Perwakilan acara merujuk kepada melampirkan pendengar acara ke elemen induk dan kemudian memproses peristiwa yang berlaku pada unsur -unsur anaknya. Sekiranya terdapat banyak elemen kanak -kanak, ini lebih cekap daripada melampirkan pendengar acara kepada setiap elemen kanak -kanak secara berasingan. Perwakilan acara juga boleh menjadikan kod lebih ringkas dan mudah dikekalkan.Contoh:
di sini, kami menambah acara klik ke bekas induk, bukannya menambah acara klik ke setiap butang. Dalam pengendali acara, gunakan kaedah
, getElementById
atau querySelector
untuk memilih elemen berdasarkan pemilih CSS. getElementsByClassName
Elakkan menggunakan innerHTML
Walaupun mudah untuk memanipulasi unsur-unsur DOM dan HTML, ia mempunyai risiko keselamatan dan terdedah kepada serangan skrip lintas tapak (XSS). Di samping itu, apabila mengemas kini kandungan HTML secara dinamik, innerHTML
lebih perlahan daripada kaedah lain, kerana ia memerlukan penyemak imbas untuk menghuraikan dan menjadikan keseluruhan kandungan HTML elemen. innerHTML
, textContent
. appendChild()
const newText = document.createElement('p'); const parentElement = document.getElementById('heading'); parentElement.appendChild(newText);
Elakkan elemen bersarang dalam pemilih
Dalam beberapa kes, elemen bersarang dalam pemilih bukan amalan terbaik. Ini akan mengurangkan kebolehgunaan semula pemilih dan meningkatkan kesukaran penyelenggaraan kod. Jika struktur HTML berubah, pemilih mungkin tidak lagi sepadan dengan elemen sasaran.Sebagai contoh, bukannya menulis:
document.querySelector('#parent .child');
const parent = document.querySelector('#parent'); const child = parent.querySelector('.child');
// 不佳实践 let menuHead = document.querySelector('header > nav > ul.menu'); // 良好实践 let menuHead = document.querySelector('.menu');
Operasi dom boleh menjadi perlahan, terutamanya apabila halaman diubahsuai dengan kerap. Kurangkan bilangan operasi DOM untuk mengoptimumkan prestasi. Sebagai contoh, jika anda perlu menukar teks perenggan dan warna latar belakang butang, sebaiknya mengubahnya pada masa yang sama dan bukannya secara berasingan.
Kesimpulan
Operasi DOM yang cekap adalah penting untuk membuat aplikasi web yang cepat dan berpengalaman. Berikutan amalan terbaik, termasuk mengurangkan jumlah perubahan DOM dan menggunakan perwakilan acara, dapat mempercepat kod dan mengurangkan risiko masalah prestasi. Ia juga penting untuk menguji dan menilai kod untuk menemui dan menyelesaikan masalah.
Atas ialah kandungan terperinci Amalan terbaik untuk manipulasi DOM yang cekap di JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!