2012-02-28 4 views
3

현재 jQuery 모바일을 사용하고 있으며 DOM이 일반적으로 작동하는 방식에 대해 빠른 질문을합니다. 현재는 AJAX를 통해로드 된 페이지의 요소에 이벤트를 바인딩합니다 (페이지가 DOM에 삽입 됨).jQuery 모바일, DOM 및 이벤트 바인딩 해제

페이지가 전환 될 때 jQuery Mobile docs에 따라 jQuery 모바일은 DOM에서 페이지를 제거합니다.

더 이상 존재하지 않는 요소에 대한 jQuery 이벤트 바인딩 해제에 대해 걱정할 필요가 있습니까? 아약스를 통해 페이지를 변경할 때 GC가 제 바인딩을 정리할 것이라고 확신합니까?

TLDR : jQuery로 바인딩 된 요소가 DOM에서 제거되면 이벤트 바인딩을 해제해야합니까? 또는 javascript가 자동으로 이러한 이벤트를 제거하는 것을 알고 있습니까?

답변

2

페이지를 변경하면 브라우저가 이전 페이지의 모든 내용을 정리합니다. 걱정할 필요가 없습니다.

jQuery에서 jQuery의 .remove() 메서드를 사용하여 DOM에서 무언가를 가져 오는 경우 jQuery가 정리합니다. .remove()을 사용하지 않고 DOM 요소를 수동으로 제거하지 않으면 일부 jQuery 상태가 올바르게 정리되지 않을 가능성이 있습니다 (예 : .data() 정보).

관련 문제