A criação de conteúdo é um processo iterativo. Criar com eficiência exige poder ver o que mudou de uma iteração para outra. Visualizar uma versão da página e, em seguida, a outra é um processo ineficiente e propenso a erros. Um autor deseja comparar a página atual com uma versão anterior lado a lado com as diferenças destacadas.
O diff da página permite que um usuário compare a página atual com inicializações, versões anteriores etc. Para obter detalhes sobre esse recurso do usuário, consulte Diferença de página.
Ao comparar versões de uma página, a versão anterior que o usuário deseja comparar é recriada por AEM em segundo plano para facilitar a diferença. Isso é necessário para que seja possível renderizar o conteúdo para comparação lado a lado.
Esta operação de recriação é feita por AEM interna e é transparente para o usuário e não requer intervenção. No entanto, um administrador que visualiza o repositório, por exemplo, no CRX DE Lite, veria essas versões recriadas dentro da estrutura de conteúdo.
Dependendo do nível de correção AEM, o comportamento é diferente e pode exigir determinadas permissões para funcionar corretamente.
Quando o conteúdo é comparado, a árvore inteira até a página a ser comparada é recriada no seguinte local:
/content/versionhistory/<userId>/<site structure>
Porque ao usar o mecanismo de diff de página, AEM recria a versão anterior da página, para usar o recurso, o usuário deve ter certas permissões de JCR.
Para usar o recurso de diff de página, o usuário precisa ter a permissão Modificar/Criar/Excluir no nó /content/versionhistory
.
Quando o conteúdo é comparado, a árvore inteira até a página a ser comparada é recriada no seguinte local:
/tmp/versionhistory/
Este conteúdo é criado por um usuário de serviço com permissões que limitam a visibilidade ao usuário atual. Por isso, nenhuma permissão especial é necessária.
Uma tarefa de limpeza é executada automaticamente para limpar esse conteúdo temporário.
Anteriormente, na interface clássica, era necessário considerar um desenvolvimento especial para facilitar a difusão AEM (como usar cq:text
tag lib ou integrar o serviço DiffService
OSGi em componentes). Isso não é mais necessário para o novo recurso diff, pois o diff ocorre no cliente por meio da comparação DOM.
No entanto, há várias limitações que precisam ser consideradas pelo desenvolvedor.
Este recurso usa classes CSS que não têm nomes espaçados para o Produto AEM. Se outras classes CSS personalizadas ou classes CSS de terceiros com os mesmos nomes forem incluídas na página, a exibição do diff poderá ser afetada.
html-added
html-removed
cq-component-added
cq-component-removed
cq-component-moved
cq-component-changed
Como o diff é do lado do cliente e é executado no carregamento da página, todos os ajustes no DOM após a execução do serviço de comparação do lado do cliente não serão contabilizados. Este fato pode afetar