CloudFlareมีเทคโนโลยีล้ำสมัยที่เรียกว่าRocket Loader (ทั้งในบัญชีฟรีและบัญชีที่ชำระเงินแล้ว) แต่มันใช้งานได้จริงอย่างไร
พวกเขามีคู่ของหน้าเว็บที่อธิบายเทคโนโลยีแต่ไม่มากของรายละเอียดทางเทคนิค หนึ่งในคุณสมบัติที่สำคัญคือมันทำให้การโหลด Javascript ทั้งหมดในแบบที่ไม่มีการบล็อก (แบบอะซิงโครนัส)ซึ่งค่อนข้างเป็นเรื่องที่น่าทึ่ง! นี่หมายความว่า HTML / CSS สามารถแสดงผลได้โดยไม่ต้องรอให้สคริปต์โหลดและรัน
เป็นไปได้อย่างไร?
แน่นอนว่ามันไม่สามารถเปลี่ยน<script>
แท็กทั้งหมดเพื่อใช้งานได้async="true"
หรือdefer="true"
อย่างนี้จะทำให้หลาย ๆ อย่าง ...
- สคริปต์ยังคงต้องโหลดตามลำดับที่ถูกต้อง (ตัวอย่างเช่นคุณไม่สามารถโหลดปลั๊กอิน jQuery ได้จนกว่าห้องสมุด jQuery จะโหลดแล้ว)
document.write()
การเรียกใช้สคริปต์เหล่านี้จำเป็นต้องใช้งาน ( เห็นได้ชัดว่าสิ่งเหล่านี้ไม่ได้ทำในสคริปต์ async ทั่วไป )- แล้วเหตุการณ์ DOMContentLoaded ล่ะ หากสคริปต์บางตัวโหลดขึ้นหลังจากสิ่งนี้เริ่มทำงานตัวจัดการเหตุการณ์ของพวกเขาจะไม่แสดงผลหรือไม่
และในฐานะนักพัฒนามีอะไรอีกบ้างที่ฉันต้องระวังเพื่อให้แน่ใจว่าไซต์ / สคริปต์ / ปลั๊กอินของฉันยังคงใช้งานได้กับ Rocket Loader?