ฉันเห็นคำถามนี้ใน stackoverflow แต่ไม่รู้สึกว่ามีคำตอบเลย
คือ$(document).ready
จำเป็น?
ฉันเชื่อมโยงจาวาสคริปต์ทั้งหมดของฉันที่ด้านล่างของหน้าดังนั้นในทางทฤษฎีพวกเขาทั้งหมดทำงานหลังจากที่เอกสารพร้อมแล้ว
ฉันเห็นคำถามนี้ใน stackoverflow แต่ไม่รู้สึกว่ามีคำตอบเลย
คือ$(document).ready
จำเป็น?
ฉันเชื่อมโยงจาวาสคริปต์ทั้งหมดของฉันที่ด้านล่างของหน้าดังนั้นในทางทฤษฎีพวกเขาทั้งหมดทำงานหลังจากที่เอกสารพร้อมแล้ว
คำตอบ:
คือ
$(document).ready
จำเป็น?
หากคุณวางสคริปต์ทั้งหมดไว้ก่อน</body>
แท็กปิดแสดงว่าคุณได้ทำสิ่งเดียวกัน
นอกจากนี้หากสคริปต์ไม่จำเป็นต้องเข้าถึง DOM ก็จะไม่สำคัญว่าจะโหลดจากที่ใดเกินกว่าการพึ่งพาสคริปต์อื่น ๆ
สำหรับ CMS จำนวนมากคุณไม่มีทางเลือกมากนักว่าจะโหลดสคริปต์ที่ไหนดังนั้นจึงเป็นรูปแบบที่ดีสำหรับโค้ดโมดูลาร์ในการใช้document.ready
เหตุการณ์ คุณต้องการกลับไปแก้ไขข้อบกพร่องของรหัสเก่าจริงๆหรือไม่ถ้าคุณนำกลับมาใช้ที่อื่น
ขณะที่ทราบด้าน: คุณควรใช้jQuery(function($){...});
แทนเป็นมันบังคับนามแฝงไป$(document).ready(function(){...});
$
document.ready
จะไม่เหมือนกันเป็นonload
เหตุการณ์ที่มีภาพและสินทรัพย์ภายนอกอื่น ๆ ที่มีการโหลดเสร็จแล้ว
noConflict()
จำเป็นต้องใช้ด้วยเหตุผลบางประการ
ไม่ถ้าจาวาสคริปต์ของคุณเป็นสิ่งสุดท้ายก่อนปิดคุณไม่จำเป็นต้องเพิ่มแท็กเหล่านั้น
ตามหมายเหตุด้านข้างชวเลขสำหรับ $ (เอกสาร) แล้วคือรหัสด้านล่าง
$(function() {
// do something on document ready
});
คำถามนี้อาจจะดี คุณอ่านหรือไม่ jQuery: เหตุใดจึงต้องใช้ document.ready ถ้า JS ภายนอกที่ด้านล่างของหน้า
$(document).ready()
"
ไม่จำเป็นถ้าคุณรู้ว่าคุณไม่มีสิ่งที่รอการตัดบัญชีเกิดขึ้นและในกรณีส่วนใหญ่คุณจะรู้ว่าคุณได้พัฒนาสิ่งที่คุณกำลังทำจากบนลงล่างหรือไม่
- คือเมื่อคุณนำรหัสของคนอื่นเข้ามาโดยไม่ได้ตรวจสอบอย่างละเอียดแสดงว่าคุณไม่รู้
ลองถามตัวเองว่าคุณกำลังใช้เฟรมเวิร์กหรือตัวแก้ไขที่ช่วยคุณในโครงสร้างหรือไม่? คุณนำรหัสของคนอื่นมาและคุณไม่ได้ใส่ใจที่จะอ่านแต่ละไฟล์หรือไม่? คุณพร้อมที่จะผ่านเมทริกซ์ระบบปฏิบัติการเบราว์เซอร์และเวอร์ชันเบราว์เซอร์ของการทดสอบโค้ดของคุณหรือไม่? คุณต้องการบีบทุกออนซ์จากรหัสของคุณหรือไม่?
document.ready () ทำให้หลาย ๆ คำถามไม่เกี่ยวข้อง document.ready () ได้รับการออกแบบมาเพื่อทำให้ชีวิตของคุณง่ายขึ้น มันมาพร้อมกับการแสดงที่ยอดเยี่ยม (และฉันกล้าพูดว่ายอมรับได้)
ฉันได้เห็นโพสต์อ้างอิง / บล็อกในอินเทอร์เน็ตเกี่ยวกับการใช้งานของ document.ready
jQuery ในความคิดของฉันทั้งการใช้มันหรือการวางจาวาสคริปต์ทั้งหมดของคุณที่ด้านล่างของหน้านั้นใช้ได้ทั้งคู่ ตอนนี้คำถามจะเป็นอย่างไรดี? มันเป็นเพียงเรื่องของรูปแบบการเขียนโปรแกรม
ไม่จำเป็น คุณสามารถวางแท็กสคริปต์ไว้หน้าแท็กปิดเนื้อหาหรือหากคุณรองรับ IE9 + คุณสามารถใช้ JS เนทีฟได้
<script>alert('DOM Loaded!');</script>
</body>
<script>
document.addEventListener("DOMContentLoaded", function(event) {
// DOM has loaded ready to fire JS scripts
});
</script>