dijit 위젯을 렌더링하는 가장 빠른 방법은 무엇입니까? 프로그램 방식이 선언문보다 빠르다는 것을 알고 있습니다. (Some reference)dijit 위젯을 렌더링하는 가장 빠른 방법
너무 느리게로드되는 사용자 정의 위젯이 있습니다 (콤보 상자, 버튼 및 기타 필터를 추가하는 데 사용되는 작은 dijit 위젯 등이있는 DataGrid입니다).
소스를 살펴보면, 모든 dijit 위젯은 프로그래밍 방식으로 생성되지만 삽입 된 DOM 노드는 프로그래밍 방식으로도 생성됩니다. "올바른"방법입니까?
나는이 위젯의 렌더링 속도를 높이기 위해 노력하고있어 현재 내 선택이 프로그래밍 만든 위젯과 함께 DOM 노드를 만들 (내 회사가 struts2 + 속도를 사용)를 속도 템플릿을 결합하는 것 (위젯을 이미 만들어진 DOM 노드에 삽입하기 위해 placeAt 및 유사한 메소드 사용).
괜찮 으면 좋겠지 만 슬프게도 모든 CSS 클래스는 dijit에 의해 덮어 쓰여 지므로 다시 덮어 써야합니다. 이로 인해 합리적인 오버 헤드가 발생합니다. 템플릿에서
<input id="idOfAnExistingDomNode" class="myCssClass" />
그리고 DOM 노드에 FilteringSelect을 삽입하는 나는이를 작성해야 :
var fieldSelect = new dijit.form.FilteringSelect({
store : jsonStore,
searchAttr : "caption",
labelAttr : "caption",
selectOnClick : true,
value : "Content"
}, "idOfAnExistingDomNode");
fieldSelect.domNode.className += " myCssClass";
마지막 줄이 필요 myCssClass이기 때문에 FilteringSelect 생성 중에 덮어 씁니다.
이 문제를 방지 할 수있는 방법이 있습니까?
또는 아마도이 문제를 잘못된 방식으로 수행하려고합니다. 나는 "속도 템플리트"에 대해 완전히 확신하지 못합니다.
주 : Dojo 버전은 1.5이며, 슬프게도 최신 버전으로 업그레이드 할 수 없습니다.
내 테리 영어를 용서해주세요.
위대한 제안에 감사드립니다. 그러나 문제는 사실 페이지가로드 된 후에 트리거 된 아약스 호출 수가 많았습니다. – tonypolik