이해하기 위해 모든 JavaScript가 1 파일로 병합됩니다. Rails는 매니페스트 파일 //= require_tree .
의 맨 아래에 추가 할 때 기본적으로이 작업을 수행 application.js
합니다.
이것은 실제 생명을 구하는 것처럼 들리지만 페이지 별 JavaScript 코드에 대해서는 약간 걱정이됩니다. 이 코드는 모든 페이지에서 실행됩니까? 마지막으로 원하는 것은 모든 객체가 1 페이지에서만 필요할 때 모든 페이지에 대해 인스턴스화되는 것입니다.
또한 충돌하는 코드가있을 가능성이 있습니까?
아니면 script
페이지 하단에 페이지의 자바 스크립트 코드를 실행하는 메소드를 호출 하는 작은 태그를 넣습니까?
더 이상 require.js가 필요하지 않습니까?
감사
편집 : 나는 모든 대답을 주셔서 감사합니다 ... 그리고 그들이 실제로 문제를 겪고 있다고 생각하지 않습니다. 그들 중 일부는 스타일링에 관한 것이며 관련이없는 것 같습니다 ... 그리고 다른 사람들은 javascript_include_tag
내가 알고있는 ... (분명히 ...) 언급 하지만 Rails 3.1 방식은 모든 것을 마무리하는 것 같습니다. 각 페이지의 맨 아래에 개별 JavaScript를로드하는 대신 JavaScript를 1 개의 파일로로드하십시오.
내가 얻을 수있는 가장 좋은 해결책은 특정 기능 div
을 id
s 또는 class
es 로 태그로 묶는 것입니다. 자바 스크립트 코드에서, 당신은 단지 확인 경우 id
또는 class
페이지에 있고,이 경우, 당신은 그것과 관련된 자바 스크립트 코드를 실행합니다. 이렇게하면 동적 요소가 페이지에 없으면 JavaScript 코드는 application.js
Sprockets에 의해 패키지 된 대규모 파일 에 포함되어 있어도 실행되지 않습니다 .
위의 솔루션은 100 페이지 중 8 페이지에 검색 상자가 포함되어 있으면 해당 8 페이지에서만 검색 상자가 실행된다는 이점이 있습니다. 또한 사이트의 8 개 페이지에 동일한 코드를 포함하지 않아도됩니다. 실제로 사이트에 수동 스크립트 태그를 다시 포함시킬 필요가 없습니다.
이것이 내 질문에 대한 실제 답변이라고 생각합니다.
application.js
). 실제로 제공 한 참조는 이것이 왜 그런지 지적합니다. JS 실행 프로세스의 가장 느린 부분. 많은 작은 파일이 하나의 큰 파일보다 캐시 가능합니다. Unholy Rails 사람들은 그들의 권장 사항이 준수하려는 원칙과 일치하지 않는다는 것을 인식하지 못하는 것이므로 권장 사항을 심각하게 받아들이지 않아야합니다.