3

HTML 파일의 스크립트 태그에 단일 페이지 Java 응용 프로그램에 대한 클라이언트 측 템플리트를 넣는 경향에 대해 궁금합니다. 흥미로운 접근 방법 인 것 같지만 이것이 가장 좋은 방법 (또는 적어도 더 나은 방법)으로 간주됩니까? 나는 장점과 단점의 목록을 만들어 내려고 노력했지만, 나쁜 점은 좋은 점보다 많은 것으로 보인다. 그래서 내가 그것을 볼 수있는 방법은 이것이다 :스크립트 태그의 클라이언트 측 템플릿. 장점 단점?

장점 :

  1. 하나 개의 모든 템플릿을 얻기 위해 요구 대 각 템플릿 파일에 대한 개별 비동기 요청.

단점 : 모든 템플릿을 하나 개의 파일에 모든 템플릿을 편집 할 수

  • 약간 복잡 한 위치에있는 경우

    1. 는 잠재적 인 병합 troublespot/병목 파일을 작성
    2. 비트 찾을 수 성가신 키보드 단축키를 사용하여 파일을 여는 데 필요한 템플릿.
    3. 템플리트로 무엇이든하기 전에 DOM이 준비 될 때까지 기다려야합니다.

    은 또한 스크립트 태그를 갖는, 당신이 미리 컴파일하고 각 템플릿을 얻기 위해 한 번 DOM을 조회하고 귀하의 템플릿을 캐시 할 것으로 보인다. 그러나, 당신은 AMD/Require와 require/text를 사용하여 동일한 효과를 얻을 수 없었습니다! 또는 dojo/text !? 후자의 경우, 각 템플릿을 한 번만 지연로드합니다. 그런 다음 캐시하고 그 시점에서 사전 처리 컴파일 할 수 있습니다.

    저는 스크립트 태그에서 템플릿의 많은 이점을 보려고 애 쓰고 있습니다. 내가 놓친 게 있니?

  • +0

    언제든지 비동기 요청을 1 회 수행하고 특정 템플릿을 요청하여 하나의 응답으로 결합하고 서버가 요청한 템플릿을 생성하게 할 수 있습니다. 이렇게하면 캐싱을 계속 사용할 수 있습니다. 각 템플릿을 다른 파일에 저장할 수는 있지만 정적 또는 동적으로 포함 할 수 있습니다. – Ian

    답변

    1

    IMHO 정말 얼마나 많은 템플릿을 가지고 있습니다. 사이트가 처음 시작되어 많은 템플릿이 없으면 하나의 HTML 페이지에있는 태그를 모두 script 개로 유지하는 것이 좋습니다.

    그러나 템플릿 수가 증가하면 곧 다루기 힘들어집니다. 오래 전에 서버 측 논리를 사용하여 여러 개의 개별 템플릿 파일을 마스터 HTML 파일에 연결 했으므로 그 시점에서 다른 접근 방법을 고려하는 것이 타당하다고 생각합니다.

    개인적으로 내 회사의 코드베이스는 HTML 파일에 script 태그로 시작하지만, 우리는 성장 이후했습니다 (그리고 require를 사용하기 시작) 지금 현재 우리가 수십 경우를 가지고 있지 .handlebars (또는 더 일반적으로, .hbs) 파일의 수백 모든 템플릿에 적용됩니다.우리는 알렉스 교회의 머슴의 HBS는 (https://github.com/SlexAxton/require-handlebars-plugin을) - 플러그인에 필요한 사용하여 우리의 자바 스크립트에 이러한를 가져오고 있기 때문에 그 위대한 작품 : 우리는

  • 서식 파일로 컴파일받을 우리의 템플릿에 대한 우리의 표준 require 시스템을 사용할 수

    1. 우리가 사용하는 하나의 압축 된 JS 파일은 같은 우리가

    아니에요을 편집 할 때 쉬르, 우리가 HTML로 .handlebars 파일을 치료하기 위해 우리의 IDE를 구성 할 수 있습니다 최적화

  • 을 필요로 우리에게 적절한 구문 색상을주고 e 템플릿 시스템을 사용하고 있지만 핸들 바를 사용하고 이미 Require를 사용하고 있다면 HBS 플러그인을 사용하는 것이 좋습니다. 다른 템플릿 시스템을 사용하는 경우 비슷한 플러그인이 필요합니다 (해당 시스템이 널리 사용되는 경우). 또는 HBS를 기본으로 사용하여 직접 작성할 수도 있습니다.

    템플릿의 괜찮은 번호로 누군가를 위해, 나는 (이미 필요 사용하는 모든 사용자에 대한 특히) 그런 시스템이 script 태그보다 훨씬 더 의미가 생각합니다.

  • +0

    흥미 롭습니다. 나는 그 플러그인에 대해 들어 본 적이 없다. 우연히도 핸들 바를 사용하고 있지만 Require 대신 Dojo를 사용하고 있습니다. 여전히 AMD 로더를 가지고 있지만, 그 자체로는 필요하지 않습니다. – sma

    +0

    아, 불행히도 Dojo에 익숙하지는 않지만 http://livedocs.dojotoolkit.org/loader/amd#plugins와 같은 로더 플러그인이있는 것 같습니다. 실제로 require와 동일한 기본 플러그인이있는 것 같습니다. 즉 템플릿을 텍스트로 가져 오는 데 사용할 수있는 텍스트 플러그인이 있음을 의미합니다. 거기에서 HBS 플러그 - 인과 비슷한 것을 시뮬레이트하고 싶다면'handlebars.compile (thatText)'로의 짧은 단계입니다. 그리고 아마 HBS 플러그인도 Dojo로 변환 될 수 있습니다 (다만 추측 일뿐입니다). – machineghost

    +0

    굉장합니다. 정보를 가져 주셔서 감사합니다. – sma

    0

    정확하게 이해한다면 사용하려는 클라이언트 쪽 템플릿이 몇 개 있지만 서버 쪽 개별 파일로 나누고 싶습니다. 그러한 템플릿이 많이있을 때 이러한 접근 방식에 대한 몇 가지 분명한 엔지니어링 이점이 있습니다.

    JSONP 사용을 고려해보십시오. 각 템플릿

  • 쉽게 포함시킬

    1. 별도의 파일을 HTML 페이지로 : 서버 측에 반 괜찮은 핸들러로, 당신은 당신이 찾고있는 혜택을받을.
    2. 각 템플릿을 변수에 할당하거나 클라이언트가 수신 한 즉시 컴파일 함수를 통해 보낼 수 있습니다.
    3. 캐시를 클라이언트 측에 캐시하므로 모든 페이지마다 다시로드 할 필요가 없습니다. 캐싱 프록시

    비 단순하다 JSONP 구현의 유일한 부분

  • 호환성 캐시 속성이다. 요청을받는 서버 측 컨트롤러가 조건부 GET을 이해하는지, 304 응답을 보내는 방법 및 캐싱 헤더를 올바르게 설정해야하는지 확인해야합니다.

    이 기술에 익숙하지 않은 사용자는 JSONP wikipedia entry을 살펴볼 수 있습니다.

  • 관련 문제