มาจัดการกับปัญหาแรกก่อน: 1 ตรวจสอบรหัสแหล่งที่มาของฟังก์ชั่นที่แนะนำโดยฟังก์ชั่นนี้ด้านล่างบทความ
จริงๆแล้วมันง่ายมากเพียงคลิกที่แว่นขยายเพื่อเลือกคำแนะนำ
votepost นี้ (CB_ENTRYID, 'DIGG') เป็นฟังก์ชั่นที่เรียกโดยปุ่มแนะนำ มันไม่ง่ายมากเหรอ?
ปัญหาที่สองคือการค้นหาตำแหน่งไฟล์ที่ฟังก์ชั่นอยู่
ในความเป็นจริงมันก็ง่ายมาก แน่นอนว่าเพื่อนที่ไม่คุ้นเคยกับคอนโซลอาจไม่รู้วิธีการอ่าน
ฉันพิมพ์ votepost ในคอนโซลและกด Enter
ซอร์สโค้ดฟังก์ชั่นจะปรากฏขึ้นอย่างคร่าวๆและมีลิงค์บล็อก -mommon.js? v = we8o1xrgctu07qvvwyqerqd7aa8fdjp_dgoe-crat3k1: 1 สิ่งนี้หมายความว่าอย่างไร?
V = WE8O1XRGCTU07QVVWYQERQD7AA8FDJP_DGOE-CRAT3K1 จะถูกละเว้นโดยตรง
PS: หากคุณต้องการทราบว่านี่คืออะไรจริง ๆ แล้วเป็นหมายเลขเวอร์ชัน สำหรับสิ่งที่มันทำมักจะป้องกันการแคช กรุณาค้นหารายละเอียดออนไลน์
blog-common.js: 1 เกือบหมายถึงสิ่งนี้ -
blog-common.js เป็นไฟล์ js ที่ฟังก์ชันนี้อยู่
1 คือหมายเลขบรรทัดที่รหัสอยู่
คลิกลิงก์นี้โดยตรงเพื่อข้ามไปยังแผงแหล่งที่มา นี่คือแผงต้นทางซึ่งเป็นฟังก์ชั่นที่สำคัญที่สุดของการดีบักและจะแนะนำอย่างช้าๆในภายหลัง
แต่รหัสทั้งหมดอยู่ในบรรทัดเดียวเราจะดูได้อย่างไร? อักขระ 4946 ทั้งหมดจะลดลงในบรรทัดเดียว -
Chrome ให้ฟังก์ชั่นการจัดรูปแบบรหัสให้เราคลิกปุ่มพิมพ์สวยด้านล่างเพื่อจัดรูปแบบรหัส
หลังจากการจัดรูปแบบเสร็จสิ้นมันจะสวยงามมาก ไม่ว่าคุณจะเข้าใจหรือไม่ก็เป็นอีกเรื่องหนึ่ง
บางคนไม่เข้าใจมันบางทีรหัสอาจถูกรวบรวมโดยเครื่องมือเช่น Uglifyjs การปิดของ Google ฯลฯ เช่นไฟล์ jQuery.min.js
อาจเป็นไปได้ว่าระดับของคุณต่ำเกินไปและคุณไม่สามารถเข้าใจรหัสที่เขียนโดยอาจารย์ในขณะนี้ดังนั้นฉันจึงไม่สามารถทำอะไรเกี่ยวกับเรื่องนี้ได้ คุณสามารถทำงานอย่างหนักเพื่อปรับปรุงความแข็งแกร่งของคุณ
หากการจัดรูปแบบเพียงพอไม่ต้องกังวลถ้าฉันอยู่ที่นี่ทำไมคุณถึงตื่นตระหนก
กลับไปที่แผงคอนโซลตอนนี้
คุณมีความยินดีที่พบว่า blog-common.js? v = we8o1xrgctu07qvvwyqerqd7aa8fdjp_dgoe-crat3k1: 91
หมายเลขบรรทัดได้กลายเป็น 91 ตอนนี้คลิกที่ลิงค์นี้และคุณสามารถข้ามไปยังตำแหน่งที่จัดรูปแบบได้ ไม่สะดวกมากเหรอ? -
คำถามสุดท้ายคือการปรับเปลี่ยนฟังก์ชั่นเพื่อทำให้เป็นโมฆะ นี่เป็นสิ่งที่ง่ายที่สุดและง่ายกว่าตอนนี้ แต่หลายคนไม่สามารถใช้งานได้ดังนั้นฉันจึงเอามันออกมาและพูดคุยเกี่ยวกับเรื่องนี้เป็นพิเศษ
ก่อนอื่นเรารู้ว่าฟังก์ชั่นแนะนำให้เรียกฟังก์ชั่นนี้คือ votepost (cb_entryid, 'digg') และมันถูกเขียนโดยตรงและผูกมัดโดย onclick บน html
ดังนั้นฟังก์ชั่นนี้เป็นฟังก์ชั่นระดับโลกที่สามารถเรียกได้ทุกที่ดังนั้นสิ่งนี้หมายความว่าอย่างไร
หมายความว่าเราสามารถแก้ไขได้มันเป็นเหมือนตัวแปรทั่วโลกคุณสามารถแก้ไขได้ทุกที่ใช่ไหม? จากนั้นฟังก์ชั่นทั่วโลกควรถูกต้อง
ดังนั้นเราจึงสามารถปรับเปลี่ยนเป็นฟังก์ชั่นที่ว่างเปล่า
votePost = function () {}; หรือ votepost = $ .noop; $ .NOOP เป็นฟังก์ชั่นที่ว่างเปล่าโดย jQuery เพื่อให้เราสะดวกสำหรับเราที่จะใช้
ตอนนี้ VotePost เป็นฟังก์ชั่นที่ว่างเปล่าดังนั้นจะไม่มีอะไรเกิดขึ้นหากคุณคลิกปุ่มคำแนะนำ
แน่นอนว่าจะมีผลอีกครั้งหลังจากรีเฟรชหน้า เราเพียงแค่แก้ไขข้อบกพร่องและแก้ไขบนหน้า เป็นไปไม่ได้ที่เราจะมีผลอย่างถาวรโดยไม่ต้องเปลี่ยนซอร์สโค้ดของ Blog Park
ดังนั้นการดีบักหมายถึงกระบวนการค้นหาและกำจัดข้อผิดพลาด หากแหล่งที่มาของข้อผิดพลาดให้แก้ไขแล้วทดสอบ หากไม่ถูกต้องให้รีเฟรชและแก้ไขอีกครั้งดังนั้นจึงไม่จำเป็นต้องแก้ไขไฟล์จริงซึ่งจะทำให้ไม่สามารถกู้คืนได้
เนื้อหาของวันนี้เกือบทั้งหมด ในความเป็นจริงมีฟังก์ชั่นทั่วโลกโดยตรงไม่กี่ฟังก์ชั่นสำหรับคุณที่จะทำการดีบักเนื่องจาก jQuery เป็นที่นิยมในขณะนี้และการเชื่อมโยงเหตุการณ์ต่าง ๆ เช่นคลิกและทำให้การวางตำแหน่งซอร์สโค้ดซับซ้อนมาก
โชคดีที่ฉันเขียนบทความมาก่อนและวิเคราะห์ปัญหานี้ในรายละเอียดเพิ่มเติม สำหรับรายละเอียดโปรดดูที่ "การอภิปรายสั้น ๆ เกี่ยวกับปัญหาการวางตำแหน่งซอร์สโค้ดของเหตุการณ์ jQuery"
ฉันไม่คุ้นเคยกับเฟรมเวิร์กอื่น ๆ ดังนั้นฉันจึงไม่ได้วิเคราะห์ แต่ความคิดนั้นคล้ายกันจริง ๆ และต้องมีกลไกการจัดการเหตุการณ์
วันนี้ฉันไม่มีความรู้มากนัก แต่ฉันต้องรวมมันไว้ด้วยตัวเองมิฉะนั้นฉันจะลืมมันในไม่กี่วินาที
การออกกำลังกายหลังคลาส:
1. วิเคราะห์ว่าฟังก์ชั่นการลงคะแนนเสียงใช้งานที่แนะนำได้อย่างไร
2. การดีบักแบบไดนามิกและการวิเคราะห์การลงคะแนนเสียง (เพื่อรวมความรู้เบรกพอยต์)
ฉันจะพูดถึงจุดพักและการดีบักแบบไดนามิกในวันพรุ่งนี้ ฉันไม่พบคำถามที่เหมาะสมดังนั้นฉันจะทำก่อน หากคุณมีสิ่งที่เหมาะสมที่ต้องการการดีบักแบบไดนามิกโปรดตอบกลับ -