Resumo

  • O rascunho DOM4 do W3C de dezembro de 2012 já descrevia observadores de mutações e filas de registros. A Recomendação de novembro de 2015 apresentou os observadores como substitutos dos Mutation Events.
  • A norma DOM atual permite acompanhar filhos adicionados ou removidos, atributos e texto, inclusive em uma subárvore. O navegador enfileira os registros e os entrega em uma microtarefa; o autor decide o que atualizar.

Pense num mural de reuniões. Alguém inclui um encontro, muda a sala de outro e retira uma reunião já encerrada. Um componente mantém o índice para busca. Ele quer receber a relação das mudanças, não ser arrancado da cadeira enquanto cada cartão ainda está sendo movido. Um maço de registros permite olhar para a obra depois que as ações daquela rodada foram lançadas.

O rascunho DOM4 do W3C de 6 de dezembro de 2012 já definia observadores, filas de registros e operações para parar de observar ou recolher os registros pendentes. O navegador não precisava compreender o calendário. Precisava identificar alterações em nós e os programas que pediram notícias sobre elas. O histórico de publicação do W3C situa aquele rascunho no caminho para a Recomendação.

A Recomendação DOM4 de 19 de novembro de 2015 afirma no resumo que Mutation Observers substituem Mutation Events. O desenho passa a colocar objetos MutationRecord nas filas dos observadores interessados e programa uma microtarefa composta para avisá-los. Uma sequência de mudanças pode chegar ao retorno como uma coleção. A página ganha espaço para rearranjar os cartões; o componente recebe a correspondência que pediu.

O endereço da assinatura é detalhado. childList acompanha filhos incluídos e retirados, attributes acompanha atributos e characterData acompanha texto. subtree inclui descendentes; filtros restringem nomes de atributos; opções de valor anterior guardam o estado antes de certas mudanças. O responsável pelo mural pode ouvir apenas os cartões que administra.

Cada registro traz tipo e alvo. Conforme a alteração, pode trazer nós acrescentados ou removidos, vizinhos, nome de atributo ou valor antigo. O programa lê o pacote e decide quais linhas de seu índice precisam mudar. O navegador responde pela fila e pelo horário de entrega. O significado de cada aviso depende da tarefa do destinatário e das opções que ele escolheu ao se inscrever.

O DOM Living Standard da WHATWG mantém hoje a mecânica das notificações. Uma microtarefa reúne os observadores pendentes e entrega suas filas aos retornos. takeRecords() devolve e esvazia os registros que ainda aguardam entrega; disconnect() encerra a observação e limpa a fila. Quando o mural sai da página, sua caixa de correio pode fechar junto.

O histórico do W3C registra a retirada da fotografia DOM4 em 2020. O padrão DOM vivo continua descrevendo os observadores. Os originais de 2012 e 2015 contam a troca de mecanismo; o texto atual mostra sua forma vigente. A invenção tem a medida de uma boa agência postal: um serviço compartilhado de entrega, com decisões de leitura deixadas a cada autor.