본문 바로가기

Javascript/ExtJS15

트리 스토어 어떻게 순회할까? 트리 순회하기 평소 Store를 순회하는 방식 Ext.Array.each(items, (item) => { // 로직 });위의 방식으로 TreeStore를 순회했더니 1계층만 순회 되는걸 발견! 찾아보니 TreeStore는 위의 방식으로 순회하면 안된다. treeView.getRootNode().cascade((node) => { // 로직 });이렇게 해야 모든 node 순회. 트리의 모든 node를 순회하는 일이 많지 않지만 필요할 때 사용. 더 좋은 방법이 있다면 댓글에 알려주세요! 제발 2018. 7. 19.
Store load가 완료되지 않은 시점에 다시 load가 들어온다면 Load 다중 발생 프론트를 개발하다보면 항상 예상치 못한 문제점을 마주치곤 한다. 예를 들면, 트리 리스트 또는 그리드에서 사용자가 키보드 입력으로 빠르게 이동 할 시 해당 이벤트 마다 Store에 load 이벤트가 있다면? 만약 전에 발생한 load가 데이터가 많아 늦게 도착했다면 화면에 보여지는 데이터가 선택된 항목의 값이 아닌 이전에 선택된 항목의 값이 나올 수 있다. (데이터를 load하는 Store가 같다는 가정) 해결책은? 키보드 입력 이동을 막는다. 이벤트 발생 buffer를 둔다. 키 입력(키보드 up)이 끝나는 시점에 load 시킨다. 아직 Store가 loading 중이라면 중단 후 새로 load 기타 등등(다른 아이디어는 지금 당장 안떠오름.) 내가 사용한 방법은 2가지 select.. 2018. 7. 13.
Menu 컴포넌트 메모리 누수 때려잡기 ExtJS Menu 메모리 누수 잡기 안녕하세요, 스빠시빠 입니다. (욕 아님) 회사 프로젝트로 ExtJS를 새로 배워서 사용하고 있는데, 웹에도 메모리 누수가 있다는 걸 처음 알았다! 😃 완전 씐나! C++을 떠나 웹으로 오면서 메모리와는 이제 안-녕 하는줄 알았는데... 어서와 메모리 누수는 처음이지? Ext.menu.Menu 컴포넌트는 hide 될 시 자동으로 해당 DOM을 제거 하지 않는다. 그러므로 개발자가 직접 제거해줘야 한다. 모든 hide 콜백에서 destroy를 해준다. 😃 hide() { this.destroy() } 컨트롤 C+V! 컨트롤 C+V! 컨트롤 C+V! 조금 더 좋은 방법 안내 Ext.define('Override.menu.Menu', { override: 'Ext.menu.. 2018. 7. 11.