2011-01-15 4 views
0

가 포함 HTML에서 선언 된 변수에 의존하는 그것은 .js 파일에 대한 좋은 연습입니다 ${..}은 단순히 페이지를 생성하는 스크립트 값의 자리 표시 자일뿐입니다. 그것은 PHP, JSP, ASP, 뭐든간에 될 수 있습니다. 요점은 - 동적이며 .js 파일 (정적 임)의 일부가 될 수 없다는 것입니다.은 한마디로

정적 자바 스크립트 파일이 외부에서 정의 된 구성 변수에 의존하는지 확인해도됩니까? (그들은 주로 구성입니다).

또는 .js 파일을 동적으로 처리 (즉, Content-Type과 함께 .php/.jsp로 지정)하고이 값을 정의하는 것이 좋습니다.

답변

1

jquery plugins에 사용 된 예를 따를 수 있습니다. 이 매개 변수는 사용자가 오버로드 할 수있는 특정 형식의 매개 변수에 대한 기본값을 정의합니다. 따라서 필자의 의견으로는 외부 스크립트에서 사용되는 문서화 된 형식으로 일부 변수를 정의 할 수있는 가능성을 허용하는 것이 좋습니다.

1

구성 변수의 특정 값이 런타임에만 알려지면 (즉, 구성을 정적으로 생성 할 수없는 경우) 올바른 캐싱을 불가능하게하는 실제 스크립트에 구성을 포함시키는 것은 의미가 없습니다.

나머지 페이지가 정적 인 경우 (또는 콘텐츠 변경시에만 다시 생성되는 경우) HTML에 구성을 포함시키는 대신 서버 쪽에서 전용 config.js을 동적으로 생성하는 것이 좋습니다. 어쨌든 페이지가 동적 인 경우 구성을 포함하는 데는 아무런 문제가 없습니다.

마크 업과 스크립팅을 완벽하게 구분하는 철학에 가입 한 경우 마크 업 (예 : lang 속성 및 cutom 클래스를 통해)에서 구성을 인코딩 할 수 있지만 순수 주의자 관점이 반드시 가장 적절하지는 않습니다.

1

일반적으로 javascript 파일을 자체 포함하고 외부 변수에 의존하지 않는 것이 좋습니다.

그렇다면 외부 변수에 따라 올바른 작업을 수행 할 수있는 상황이 있습니다. 참고 :

  • 가 자바 스크립트와 (당신의 예에있는 것으로 나타나는) 외부 변수가 작고 잘 정의 된 것이어야한다 사이의 인터페이스

    을 - 명확한 목적 각, 적은 수의 변수가 바람직 설정 페이지 생성의 공통된 장소에서
  • 변경되는 정보는 자바 스크립트 크기에 비해 작기 때문에 정적 자바 스크립트 파일을 사용하면 캐싱이 훨씬 잘 작동합니다.
  • javascript 파일을 유지하려고하는 모든 사람이 javascript 파일 외부에서 정의 된 것을 명확하게 볼 수 있도록 변수에 대한 명명 규칙이 필요합니다.
1

는 일반적으로 더 나은 아이디어는 외부 스크립트에 정의 된 구성 요소를 초기화 할 때 다음과 같이 명시 적으로 설정을 전달하는 것입니다 :

<script type="text/javascript" src="js/scripts.js"></script> 
<script type="text/javascript"> 
    MyApp.init(${config}); 
</script>