RequireJS를 사용하고 있으며 각 페이지마다 고유 한 스크립트 파일을 만듭니다. 그러나 일부 페이지 (서버 쪽)에 포함 된 일부 구성 요소도 있습니다. 이 페이지는 또한 자신의 스크립트 파일을해야합니까, 또는 필요한 자바 스크립트가 포함 된 페이지에 있어야합니까? 포함 된 페이지의 일부 기능은 많은 페이지에 공통적입니다.다른 페이지에 포함 된 페이지에 자체 스크립트가 있어야합니까?
답변
자바 스크립트를 페이지 별 기능이 아니라 재사용 가능한 모듈로 생각하는 것이 더 나을 것이라고 생각합니다. 따라서 페이지에 AJAX 요청을 시작하는 검색 창, 날짜 선택 도구 및 전체 탭이 있다고 가정 해보십시오. 이들 각각은 모듈이어야합니다 (또는 모듈이 제공하는 기능이 충분히 복잡하면 몇 개의 모듈이어야 함). 앱을 매우 집중된 작은 조각으로 분해하면 각 비트를 개별적으로 (자동화 된 단위 테스트) 테스트하고 다른 곳에서 기능을 재사용하는 것이 더 쉬워집니다.
이제 자바 스크립트 모듈을로드하는 방법에 대해 전략적으로 사용자 요구에 따라 물건을로드하는 것이 중요합니다 (예 : core.js가 기본적으로로드되지만 search.js는 사용자가로드 할 때까지로드되지 않습니다. "검색"탭에 액세스)하지만 모든 파일을 하나의 파일 (require's r.js tool)로 패키징하고 모든 페이지에서 동일한 스크립트 파일 (main.js)을 사용하면 훨씬 쉽게 얻을 수 있습니다.
단일 스크립트 파일을 사용하는 경우 js는 기능의 대상이 없을 때 작동해야한다는 점에 유의하십시오. jQuery를이 슈퍼 간단하게하고 당신은 거의 그것에 대해 생각하지 않습니다 - 예 :
$('#js-foo').on(...) // <-- this doesn't blow up if '#js-foo' isn't on the page.
나는 또한 사람들이 페이지의 body 태그에 데이터 ATTR을 설정 본 것 - 예를 들어, 그 오프 데이터 페이지 = "foo는"키 JS : 귀하의 경우
var page = $('body').data('page');
if (page === 'foo'){
component1.setup();
component2.setup();
}
, 나는/AMD-스타일의 모듈 RequireJS를 사용하여 하나의 파일에 모든 것을 구축하려고 할 것입니다. 각 구성 요소는 자체 모듈 파일 (mycomponent.js)을 가지게되고, main.js는 모든 모듈과 init 객체를 적절하게 요구할 것이고, 마지막으로 배치 할 때 모든 것을 단일 파일로 패키징하도록 r.js 빌드를 구성 할 것입니다. to/production에서 작동합니다.
당신이 더 많은이 주제를 탐구에 관심이 있다면,이 게시물 체크 아웃 :
- 1. 다른 페이지에 포함 된 OpenTok (TokBox)
- 2. 다른 웹 페이지에 포함 된 웹 페이지
- 3. 자체 페이지에 CAPTCHA 넣기?
- 4. 캐시 된 페이지에 req.http.referer 포함
- 5. 복제본이 포함 된 페이지에 추가
- 6. 페이지에 포함 된 비디오 감지
- 7. 검색 페이지에 명확한 버튼이 있어야합니까?
- 8. JSF 웹 페이지에 포함
- 9. 한 페이지에 여러보기 포함
- 10. 다른 페이지에 대한 문서 개체로드
- 11. 다른 HTML 페이지에 HTML 파일 포함
- 12. 모든 페이지에 메뉴 포함
- 13. 리디렉션 인덱스 페이지에 포함
- 14. html 페이지에 gif 포함
- 15. 다른 웹 페이지에 동적으로 생성 된 GWT 위젯 포함
- 16. ASP.NET 페이지에 포함 된 IFrame에 javascript를로드해야합니까?
- 17. masterpage 및 페이지에 포함 된 코드 블록
- 18. 자바로 쿠키가 포함 된 웹 페이지에 로그인하십시오.
- 19. ASP.NET 페이지에 포함 된 이미지 만 인쇄합니다.
- 20. ASP.NET 페이지에 포함 된 Windows 컨트롤에서 인쇄
- 21. 다른 웹 페이지에 여러 개의 swf 파일이 있어야합니까?
- 22. 웹 페이지에 적어도 하나의 'H1'이 있어야합니까?
- 23. 클라이언트 측 HTML 페이지에 포함
- 24. 여러 페이지에 자체 CSS가있는 헤더를 포함하려고 시도했습니다.
- 25. 페이지의 스타일에 영향을주지 않고 페이지에 CSS가 포함 된 html 문자열
- 26. 다른 페이지에 다른 서블릿 사용
- 27. ASP.Net 페이지에 HTML 태그 포함
- 28. jQuery. 자바 스크립트가 포함 된 다른 페이지에서로드합니다.
- 29. 한 페이지에 여러 개의 jQuery 스크립트가 있습니까?
- 30. 페이지에 두 번 포함 된 스크립트에서 함수 호출