Dom

  • Published on
    일단, 발행하기 전에 정리부터 하자..예제는 나중에 정리하고.. 생각나는대로 써보면,.. 대충 정리해보면 아래와 같다. 1. DOM 노드 캐싱 DOM을 캐싱할때는,.. 캐싱하려는 노드를 cloneNode(true)로 떠서 캐시하자..그렇치 않으면, IE에서는 innerHTML로 해당 노드를 날렸을때,. 캐시한 노드까지 날라간다.반면, IE외의 다른 브라우저에서는 innerHTML로 해당 노드를 날렸을때..해당 노드만 날라가고, 캐시한 노드는 그대로 있다. [하나 더 주의] - cloneNode를 할 경우, 바인딩된 이벤트는 복사되지 않는다.! 2. 메모리 누수모든 브라우저가 innerHTML로 엘리먼트를 교체하면, 엘리먼트가 걸려있는 이벤트 핸들러들이 날아가 버린다. 보다 정확한 의미는 참조를 잃어버린다!!때문에 참조를 잃어버린 이벤트 핸들러들은 영영 해제할 길이 없어 메모리 누수가 생긴다. 따라서, 엘리먼트 교체를 해야할 경우엔, 이벤트 핸들러를 먼저 제거해주거나..앞에서 얘기한