요약
- W3C의 2012년 DOM4 초안은 변경 관찰자와 기록 대기열을 설명했다. 2015년 권고안은 Mutation Observers가 Mutation Events를 대체한다고 명시했다.
- 현재 DOM 표준에서 작성자는 자식 노드, 속성, 글자 데이터의 변경을 선택해 관찰할 수 있다. 브라우저는 기록을 대기열에 넣고 마이크로태스크로 알린다. 이후의 업데이트는 컴포넌트 작성자가 결정한다.
회의 목록을 떠올려 보자. 새 회의 카드가 들어오고 다른 카드의 방 번호가 바뀌며 끝난 회의는 사라진다. 검색 색인을 맡은 프로그램은 목록을 고쳐야 한다. 매 작업 중간에 불러내면 의자를 옮기는 사람들 사이에서 방 상태를 세게 된다. 변경 기록의 묶음은 그날의 우편물을 책상 위에 놓듯 정리된 출발점을 준다.
2012년 12월 6일 W3C DOM4 작업 초안에는 관찰자와 기록 대기열, 관찰 중단 및 보류 기록 수거 방법이 적혀 있다. 브라우저는 회의가 무엇인지 몰라도 된다. 어느 노드가 바뀌었고 누가 그 소식을 구독했는지만 다룬다. W3C DOM4 발행 기록은 이 초안이 뒤이은 권고안으로 이어지는 문서 중 하나였음을 보여 준다.
2015년 11월 19일 DOM4 권고안은 요약에서 Mutation Observers가 Mutation Events를 대신한다고 밝혔다. 새 방식은 관심을 등록한 관찰자에게 MutationRecord를 쌓고, 뒤이어 복합 마이크로태스크로 알린다. 한 차례 편집 중 일어난 여러 변경이 콜백에 목록으로 도착할 수 있다. 노드 하나가 움직일 때마다 문을 두드리던 방식에서 우편물을 묶어 전하는 방식으로 바뀐 셈이다.
구독할 소식은 고를 수 있다. childList는 자식 노드의 추가와 삭제, attributes는 속성, characterData는 글자 데이터 변경을 다룬다. subtree는 관찰 범위를 아래 노드로 넓힌다. 속성 이름을 걸러 내거나 변경 전 값을 요구할 수도 있다. 검색 컴포넌트는 자신이 맡은 회의 목록만 듣고, 페이지의 나머지 수다에는 끼어들지 않는다.
기록에는 종류와 대상 노드가 담긴다. 경우에 따라 더해지거나 빠진 노드, 이웃 노드, 속성 이름과 이전 값도 들어간다. 색인 프로그램은 이 묶음을 읽고 어떤 회의를 다시 처리할지 정한다. 브라우저는 봉투와 배달 시각을 맡고, 편지를 해석하는 일은 받은 프로그램이 맡는다. 기록의 범위는 처음 정한 관찰 옵션에서 나온다.
현재의 WHATWG DOM Living Standard는 관찰자를 알리는 마이크로태스크와 기록 전달 절차를 규정한다. takeRecords()는 남은 기록을 직접 가져오면서 대기열을 비운다. disconnect()는 관찰을 끝내고 대기열을 정리한다. 회의 목록이 페이지에서 없어지면 그 우편함도 닫을 수 있다.
W3C 발행 기록에 따르면 DOM4 스냅샷은 2020년에 은퇴했다. 현재의 관찰자 규칙은 살아 있는 DOM 표준에 이어진다. 2012년과 2015년 문서는 교체의 역사를, 현행 문서는 오늘의 배달 절차를 보여 준다. 브라우저가 공통 우편로를 운영하고, 각 컴포넌트가 자기 주소로 온 내용을 처리한다.
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





