Saat melangkah melalui kode JavaScript di debugger Google Chrome, bagaimana cara saya menghentikan eksekusi skrip jika saya tidak ingin melanjutkan? Satu-satunya cara saya temukan adalah menutup jendela browser.
Menekan "Reload this page" menjalankan sisa kode dan bahkan mengirimkan formulir seolah-olah menekan F8 "Lanjutkan".
PEMBARUAN :
Saat menekan F5 (Refresh) saat skrip dijeda:
- Google Chrome (v22) menjalankan skrip. Jika skrip mengirimkan permintaan HTTP, respons HTTP untuk permintaan itu ditampilkan. Halaman asli tidak di-refresh.
- IE 9 membeku. Namun IE memiliki opsi "Stop Debugging" yang, ketika ditekan (asalkan Anda tidak menekan F5 sebelumnya), terus menjalankan skrip di luar debugger.
- Firebug berperilaku identik dengan Chrome.
Menutup dan kemudian membuka kembali jendela browser tidak selalu merupakan cara termudah berikutnya karena akan mematikan status sesi browser dan itu mungkin penting. Semua breakpoints Anda juga hilang.
PEMBARUAN (Jan 2014) :
Refresh saat debugging:
- Chrome v31: memungkinkan skrip untuk berjalan dan berhenti pada breakpoints lebih lanjut (tetapi tidak mengirimkan permintaan ajax), lalu menyegarkan.
- IE 11: refresh tidak melakukan apa-apa, tetapi Anda dapat menekan F5 untuk melanjutkan.
- Firefox v26: memungkinkan skrip untuk berjalan tetapi tidak berhenti pada breakpoints lebih lanjut, mengirimkan permintaan ajax, lalu menyegarkan.
Semacam kemajuan!
Menavigasi ke halaman yang sama saat melakukan debug:
- Chrome v31: sama dengan Refresh.
- IE 11: skrip dihentikan, sesi browser baru dimulai (sama seperti menutup dan membuka lagi).
- Firefox v26: tidak ada yang terjadi.
Juga juacala menyarankan solusi yang efektif. Misalnya, jika Anda menggunakan jQuery, menjalankan delete $ dari konsol akan menghentikan eksekusi setelah metode jQuery ditemukan. Saya telah mengujinya di semua browser di atas dan dapat memastikan itu berfungsi.
PEMBARUAN (Mar 2015) :
Akhirnya, setelah lebih dari 2 tahun dan hampir 10 ribu tampilan, jawaban yang tepat diberikan oleh Alexander K. Google Chrome memiliki Task Manager sendiri yang dapat mematikan proses tab tanpa menutup tab itu sendiri, menjaga semua breakpoints dan hal-hal lain tetap utuh.
Saya bahkan pergi sejauh BrowserStack.com untuk mengujinya di Chrome v22 dan menemukan bahwa ini bekerja dengan cara ini bahkan pada waktu itu.
Solusi Juacala masih berguna saat melakukan debugging di IE atau Firefox.
PEMBARUAN (Jan 2019) :
Alat Dev Chrome akhirnya menambahkan cara yang tepat untuk menghentikan eksekusi skrip yang bagus (meskipun agak tersembunyi). Lihat jawaban James Gentes untuk detailnya.
debugger;
ke konsol alat dev dan itu akan segera memasukkan sesuatu ke debugger dan menghentikan skrip.