2011-05-07 2 views
2

나는 나 자신을 만들고 싶지만, 최선의 방법은 잘 모르겠다. 부분은 더 큰 또 다른 템플리트의 일부이며 임의로 다른 여러 템플리트에 삽입 될 수있는 템플리트입니다. 템플릿 자체는 매우 기본적인 것입니다. 단순히 문자열을 추출하고 연결해야하지만, 클라이언트 측 부분은 저에게 약간의 어려움을줍니다. 여기 효율적으로 clientside 자바 스크립트 templating 부분을 구현하는 방법?

내가 생각 몇 가지 방법이 있습니다 :

1, 나는 부분 특정 할 것을 요구하고 내가 생각 로컬 스토리지의 형태로 아약스를 통해 부분 지문을로드하는 자바 스크립트 도우미 함수, 이후의 모든 템플릿을 작성할 수 먼저 로컬 저장소를 살펴 봅니다. 로컬 저장소가 항상 보장되는 것은 아니기 때문에이 방법은 그리 안전하지 않습니다. 로컬 저장 장치에 저장하지 못하면 부분적으로 너무 많은 아약스 호출이 발생합니다.

2, 나는 주 HTML 파일의 스크립트 태그에 모두 넣을 수 있습니다. 이것은 합리적으로, 특히 head.js (스크립트 태그의 병렬 로딩을 가능하게하기 위해)와 같이 잘 작동하지만 여전히 각 스크립트 태그는 서버에 대한 별도의 호출이라고 생각하십니까? 그것은 상황을 정확하게 개선하지 못합니다.

3, 모든 스크립트를 단일 스크립트 태그 (또는 html과 같음)에 넣고 수동으로 구분 기호를 사용하여 필터링 할 수 있습니다. "# template1 (blabla template1 string) # template2 (blablabla template2 string) 이 문자열을 전역에 넣으십시오. 이렇게하면 서버에 대한 호출이 한 번만 발생하며 나머지는 클라이언트에서 수행됩니다.

제안? 기존의 템플릿 엔진을 살펴 보았지만 실제로 확인할 수는 없습니다. 그들이 그것을 어떻게. 코드는

+0

콧수염 .js 같은 것을 원하십니까? – Nerian

+0

underscore.js의 기본 템플릿 엔진에서 시작하여 개선 할 수도 있습니다. – dwarfy

+0

iCanHaz.js 당신은 1 개 HTML 파일에 모두 넣을 수 ... 깨끗하게의 템플릿을 저장하기 위해 템플릿 내용을'은'<스크립트 유형 = "텍스트/자바 스크립트 ID ="template1를 "을> 사용 – dwarfy

답변

1

나는 사양에 대한 템플릿 통화 및 주문형 부하를 투기하는 데 걸린 접근 꽤 복잡하다/jQuery를 템플릿의 재 작성은 파이프 라인 그것입니다.

(초기) draft spec의 9 절을 참조하고 주문형 템플리트 로딩 (Testcase "주요 호출 및 적시에로드 됨!"이 해당됩니다)의 예는 하단의 conformance suite tests을 참조하십시오.

기본적인 요점은 플러그인

로더 (JS로 작성된) 사이 파싱하고 파싱 트리를 검사하도록 컴파일에서 후크 얻을 것이다. 플러그인 패스는 개체를 매핑하는 템플릿 이름을 가져 와서 트리를 구문 분석합니다. 그들이 (당신의 말투를 사용하기 위해) 부분 템플릿 선택기를 보는 경우, AJAX 호출이나 Node.js의 파일 I/O를 사용하여 미해결 템플릿을로드하고로드 할 수 있으며, 부분 객체를 입력 객체에 추가하여 컴파일러가 공용 템플릿과 함께로드 된 부분

효율성면에서는 benchmarks을 참조하십시오. 코드를 github : https://github.com/mikesamuel/jquery-jquery-tmpl-proposal으로 마이그레이션하는 과정에서 공동 작업하고 싶을 경우를 대비하고 있습니다.

관련 문제