레일 애플리케이션에서 터보 링크 및 jquery-turbolinks를 사용하고 있습니다. dataTables와 같은 몇 가지 큰 자바 스크립트 종속성이 있습니다. 첫째, application.js에 대한 모든 종속성을로드하고 있었지만 결국에는 프리 컴파일 이후 1Mo에 큰 파일을 가지고 있으므로 필요할 때만 종속성을로드하려고합니다.터보 링크로 자바 스크립트 종속성을로드하는 방법
#= require dataTables/jquery.dataTables
#= require datatables
$(document).ready ->
console.log $('.data-table').dataTable
내가 이런 식으로 포함 :
나는이 콘텐츠와custom-datables.coffe
라는 파일이 생성
- content_for :javascript do
= javascript_include_tag 'custom-datatables'
을 그리고 난 내 응용 프로그램 레이아웃의 끝에서 자바 스크립트를 얻을 수 있습니다.
페이지를 새로 고칠 때 작동하지만 터보 링크를 사용하여이 페이지로 이동할 때 $('.data-table').dataTable
이 정의되지 않음을 알 수 있습니다. firefox의 콘솔에 $('.data-table').dataTable
을 입력하면이 함수가 정의됩니다. $(document).ready
은 데이터 테이블의 전체로드 전에 트리거 된 것처럼 보입니다.
해결 방법이 있습니까? 큰 의존성을로드하는 것이 가장 좋은 방법입니까?
작업이 실행되지 않습니다. 하나의 큰 파일에 문제가 있습니다.로드하는 데 시간이 오래 걸립니다. 내 페이지가로드되는 데 20 초가 걸리고 속도를 높이는 방법을 찾고 있습니다. – Dougui
트리거되지 않았습니까? 그건 이상 하네. 자바 스크립트 오류가 있습니까? 어떤 버전의 터보 링크를 사용하고 있습니까 (이벤트가 항상 그런 방식으로 호출되었다고 확신합니다). 당신의 브라우저에 새로운 자바 스크립트 코드가 있다고 확신합니까? – nathanvda