SPEAKER 1: Sekarang dalam contoh terakhir, ingat bahwa kita diselingi beberapa Kode JavaScript dalam HTML saya, khusus, dalam nilai atribut disebut On Kirim untuk itu tag form. Sekarang untuk halaman kecil, ini bukan masalah besar. Tapi sebagai halaman web akan lebih lama dan lebih kompleks, hanya menempatkan Anda Kode JavaScript di sana-sini dalam dari nilai atribut tidak desain terbaik. Terbaik jika kita faktor yang keluar dan setidaknya memasukkannya ke dalam tag script terpusat. Bagaimana melakukan ini? Nah mari kita kembali ke tag form dan pertama menghapus atribut ini dan yang nilai sama sekali. Kemudian di sini, daripada mendefinisikan fungsi yang disebut Greet, mari kita tunggu ke baris kode yang pada akhirnya kita akan masih ingin mengeksekusi dan mengganti fungsi Greet sebagai berikut. Document.get Element By ID mengutip demo tanda kutip - di mana demo, ingat, adalah unik pengidentifikasi untuk form itu sendiri - dot di submit, yang ingat adalah nama dari event handler yang kami tertarik. Dan mari kita menetapkan bahwa di submit handler nilai yang sebenarnya fungsi itu sendiri. Sekarang perhatikan bahwa aku tidak benar-benar memanggil fungsi di sini. Aku bukannya mendefinisikan anonim, atau dikenal sebagai fungsi lambda, dengan menentukan antara kurung kurawal sekelompok kode yang harus sebenarnya akan dieksekusi. Secara khusus, kode yang saya ingin untuk mengeksekusi adalah bahwa garis yang saya miliki sebelumnya, dan kemudian mari kita tambahkan dengan return false sehingga formulir ini tidak akhirnya diserahkan untuk mengakhiri web jarak jauh Server dengan cara tradisional. Sekarang mari kita menyimpan file ini, membukanya dalam browser, dan lihat apa yang terjadi. http://localhost/dom-1.html. Sekarang mari kita mengetik nama saya, David, Submit. Dan tidak ada yang tampaknya telah terjadi kecuali URL halaman saya tampaknya telah berubah seolah-olah bentuk itu benar-benar disampaikan ke file yang sama. Sekarang mengapa mungkin itu? Yah aku butuh informasi lebih lanjut. Jadi mari kita pergi ke depan dan membuka Chrome Developer Tools sehingga saya benar-benar dapat melihat jendela konsol untuk melihat jika saya telah melakukan sesuatu yang salah. Saya dapat mengakses melalui beberapa cara. Salah satunya adalah melalui menu ini di sini, kemudian di bawah Tools, kemudian turun ke Developer Tools. Dan perhatikan di sini di tab Console, ada jenis kesalahan tidak tertangkap, tidak bisa mengeset properti di submit dari nol. Sekarang mengapa mungkin itu? Nah kembali dalam kode sumber saya di sini, pemberitahuan bahwa pada tanggal menyerahkan saya pikir adalah properti dari elemen yang identifier unik adalah demo. Sebuah elemen, sekali lagi, hanya node di pohon. Jadi tampak bahwa browser saya tidak berpikir bahwa elemen yang atau simpul ada belum. Dan memang, tidak. Ingat bahwa halaman web parsing atau membaca oleh browser web, atas ke bawah, kiri ke kanan. Dan ketika kode JavaScript adalah ditemui, biasanya, ini dijalankan segera. Tapi dalam kasus ini, kita bahkan belum mendapatkan belum bagian dari dom tersebut, HTML, di mana bahwa bentuk dengan unik identifier demo telah dinyatakan. Dan jadi kita mencoba untuk mengeksekusi saya JavaScript kode sebelum node yang bahkan ada di pohon yang, tentu saja, adalah bermasalah karena dengan begitu, pasti, unsur itu sendiri akan null pada titik waktu. Jadi bagaimana memperbaikinya? Yah kita memiliki beberapa solusi. Tapi mari kita coba sederhana dengan relokasi tag script saya dari kepala tag ke tubuh saya, namun secara khusus, terhadap bagian bawah tubuh halaman saya jadi bahwa itu di bawah node dan pertanyaan. Secara khusus, mari kita sorot dan memotong tag terbuka dan tag tutup untuk skrip dan merelokasi bahwa seluruh blok kode ke bagian bawah file di sini. Sekarang ini belum tentu terbersih desain, tapi setidaknya itu akan menegakkan urutan yang benar dari operasi. Mari kita menyimpan file dan ulang di browser saya. Mari kita kembali halaman tersebut, kembali masukan nama saya, dan di sana, Hello David kembali.