>> 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.