ในแอปพลิเคชัน Rails ฉันใช้ turbolinks และ jquery-turbolinks ฉันมีการพึ่งพาจาวาสคริปต์จำนวนมาก เช่น dataTables ก่อนอื่น ฉันกำลังโหลดการขึ้นต่อกันทั้งหมดบน application.js แต่สุดท้ายแล้ว ฉันมีไฟล์ขนาดใหญ่ใน 1Mo หลังจากการคอมไพล์ล่วงหน้า ดังนั้นฉันต้องการโหลดการขึ้นต่อกันเมื่อจำเป็นเท่านั้น
ฉันสร้างไฟล์ชื่อ custom-datables.coffe
โดยมีเนื้อหานี้:
#= require dataTables/jquery.dataTables
#= require datatables
$(document).ready ->
console.log $('.data-table').dataTable
ฉันรวมมันไว้แบบนี้:
- content_for :javascript do
= javascript_include_tag 'custom-datatables'
และฉันใช้จาวาสคริปต์ที่ส่วนท้ายของเค้าโครงแอปพลิเคชันของฉัน
มันใช้งานได้เมื่อฉันรีเฟรชเพจ แต่เมื่อฉันไปที่เพจนี้โดยใช้เทอร์โบลิงก์ ฉันเห็นได้ว่า $('.data-table').dataTable
นั้นไม่ได้ถูกกำหนดไว้ เมื่อฉันพิมพ์ $('.data-table').dataTable
ในคอนโซลของ firefox ฟังก์ชันจะถูกกำหนด ดูเหมือนว่า $(document).ready
จะถูกทริกเกอร์ก่อนที่ DataTable จะโหลดเสร็จสมบูรณ์
มีวิธีแก้ไขหรือไม่? เป็นวิธีปฏิบัติที่ดีที่สุดในการโหลดการขึ้นต่อกันจำนวนมากหรือไม่?