เมื่อก้าวผ่านโค้ด JavaScript ในดีบักเกอร์ Google Chrome ฉันจะยุติการทำงานของสคริปต์ได้อย่างไรหากฉันไม่ต้องการดำเนินการต่อ วิธีเดียวที่ฉันพบคือปิดหน้าต่างเบราว์เซอร์
การกด "โหลดหน้านี้ใหม่" จะเรียกใช้รหัสที่เหลือและส่งแบบฟอร์มราวกับว่ากด F8 "ดำเนินการต่อ"
อัปเดต :
เมื่อกด F5 (รีเฟรช) ในขณะที่สคริปต์หยุดชั่วคราว:
- Google Chrome (v22) เรียกใช้สคริปต์ หากสคริปต์ส่งคำขอ HTTP การตอบสนอง HTTP สำหรับคำขอนั้นจะปรากฏขึ้น หน้าเดิมไม่ได้รีเฟรช
- IE 9 เพิ่งหยุดทำงาน อย่างไรก็ตาม IE มีตัวเลือก "Stop Debugging" ซึ่งเมื่อกด (หากคุณไม่ได้กด F5 ก่อนหน้านี้) จะยังคงเรียกใช้สคริปต์ภายนอกตัวดีบัก
- Firebug ทำงานเหมือนกับ Chrome
การปิดและเปิดอีกครั้งหน้าต่างเบราว์เซอร์อาจไม่ใช่วิธีที่ง่ายที่สุดต่อไปเพราะจะฆ่าสถานะเซสชันของเบราว์เซอร์และอาจมีความสำคัญ จุดพักทั้งหมดของคุณจะหายไปเช่นกัน
อัปเดต (มกราคม 2014) :
รีเฟรชขณะดีบัก:
- Chrome v31: อนุญาตให้สคริปต์เรียกใช้และหยุดบนจุดพักเพิ่มเติม (แต่ไม่ส่งคำขอ ajax) จากนั้นรีเฟรช
- IE 11: การรีเฟรชไม่ได้ทำอะไรเลย แต่คุณสามารถกด F5 เพื่อดำเนินการต่อ
- Firefox v26: อนุญาตให้สคริปต์ทำงานได้ แต่ไม่หยุดอยู่ที่จุดพักเพิ่มเติมส่งคำขอ ajax จากนั้นรีเฟรช
ชนิดของความคืบหน้า!
นำทางไปยังหน้าเดียวกันขณะทำการดีบัก:
- Chrome v31: เหมือนกับรีเฟรช
- IE 11: สคริปต์ถูกปิดเซสชันของเบราว์เซอร์ใหม่เริ่มต้นขึ้น (เช่นเดียวกับการปิดและเปิดอีกครั้ง)
- Firefox v26: ไม่มีอะไรเกิดขึ้น
juacalaยังแนะนำวิธีแก้ไขปัญหาที่มีประสิทธิภาพ ตัวอย่างเช่นหากคุณใช้ jQuery การรันการลบ $จากคอนโซลจะหยุดการทำงานเมื่อพบวิธีการ jQuery ฉันได้ทำการทดสอบในเบราว์เซอร์ด้านบนทั้งหมดและสามารถยืนยันได้ว่ามันใช้งานได้
อัปเดต (มีนาคม 2015) :
ในที่สุดหลังจากผ่านไป 2 ปีและเกือบ 10K views คำตอบที่ถูกต้องได้รับจาก Alexander K. Google Chrome มีตัวจัดการงานของตัวเองซึ่งสามารถฆ่ากระบวนการแท็บโดยไม่ต้องปิดแท็บเองโดยรักษาจุดพักและสิ่งอื่น ๆ
ฉันไปได้ไกลถึง BrowserStack.com เพื่อทดสอบใน Chrome v22 และพบว่านี่ใช้งานได้แม้ในเวลานั้น
วิธีแก้ปัญหาของ Juacala ยังคงมีประโยชน์เมื่อทำการดีบั๊กใน IE หรือ Firefox
ปรับปรุง (มกราคม 2562) :
ในที่สุด Chrome Dev Tools ได้เพิ่มวิธีที่เหมาะสมในการหยุดการทำงานของสคริปต์ซึ่งดี (แม้ว่าจะซ่อนอยู่เล็กน้อย) อ้างถึงคำตอบของ James Gentes สำหรับรายละเอียด
debugger;
ลงในคอนโซลเครื่องมือ dev และมันจะใส่สิ่งต่าง ๆ ลงในดีบักเกอร์ทันทีและหยุดสคริปต์