javascript - Bagaimanakah pokok DOM dimuatkan?
天蓬老师
天蓬老师 2017-05-19 10:42:33
0
2
522

Pengaturcaraan JavaScript Lanjutan menyebut konsep operasi dipendekkan apabila bercakap tentang ralat dalam IE:

Ralat akan berlaku apabila mengubah suai halaman yang belum dimuatkan.

Kod contoh ialah:

<body>
    <p></p>
    <p>
        <script>
            document.body.appendChild(document.createElement("p"));
        </script>
    </p>
</body>

Apabila <skrip> disertakan dalam elemen dan kod JS menggunakan kaedah DOM untuk mengubah suai elemen induk atau elemen moyangnya, ralat pengguguran operasi akan berlaku (kerana hanya elemen yang telah dimuatkan boleh diubah suai).

dan ditukar kepada

document.body.insertChild(document.createElement("p"),document.body.firstChild);

Anda boleh mengelakkan kesilapan.

Jika <p> baharu ditambahkan pada permulaan document.body dan bukannya penghujung, tidak akan ada ralat.


Selepas membacanya, saya tidak begitu faham bagaimana dokumen itu dimuatkan Mengapa ia berfungsi jika ia dimasukkan pada permulaan badan, tetapi tidak pada penghujungnya?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

membalas semua(2)
曾经蜡笔没有小新

Apabila penyemak imbas memuatkan halaman, ia akan memuatkan dan menghuraikan kod js Pada masa ini, ia akan menghentikan penghuraian dan pemaparan kod lain. Inilah sebabnya kami biasanya meletakkan kod js di penghujung halaman Ia tidak mengatur pemuatan struktur dokumen halaman dan boleh beroperasi pada semua elemen DOM.

Dalam kod di atas, apabila kod js dilaksanakan, struktur html seluruh halaman belum dimuatkan, jadi penyemak imbas tidak mengetahui kedudukan akhir badan, dan kedudukan permulaan badan telah ditentukan, jadi p baharu boleh ditambah pada permulaan Tidak boleh ditambah pada akhir.

小葫芦

Langkah untuk memuatkan dokumen DOM
1 Parsing struktur HTML.
2 Muatkan skrip luaran dan fail helaian gaya.
3 Menghuraikan dan melaksanakan kod skrip.
4 Bina model HTML DOM. //DOMContentLoaded
5 memuatkan fail luaran seperti imej.
6 Halaman dimuatkan. //muat

Ini secara teorinya benar, tetapi dalam praktiknya, lokasi kandungan dokumen juga mesti dipertimbangkan Memandangkan ia dihuraikan dari atas ke bawah, apabila menemui js, ia akan menyekat pemaparan untuk penghuraian dan pelaksanaan js.

Masalah yang anda nyatakan, saya rasa berpunca daripada fakta bahagian depan badan telah dibuat, tetapi bahagian ekor belum dibuat semasa pelaksanaan, iaitu, saya tidak tahu di mana untuk memasukkan bahagian ekor.

Disebabkan pengoptimuman operasi DOM dalam penyemak imbas moden, saya tidak dapat menemui sebarang ralat dalam ujian pada chrome, jadi tidak perlu memberi terlalu banyak perhatian kepada isu ini js di bahagian bawah.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan