Att skapa innehåll är en repetitiv process. Effektiv redigering kräver att man kan se vad som har ändrats från en iteration till en annan. Om du visar den ena sidversionen och den andra är ineffektiv och felbenägen kan uppstå. En författare vill kunna jämföra den aktuella sidan med en tidigare version sida vid sida med skillnaderna markerade.
Med sidskillnader kan en användare jämföra den aktuella sidan med startsidor, tidigare versioner osv. Mer information om den här användarfunktionen finns i Sidskillnader.
När du jämför versioner av en sida skapas den tidigare versionen som användaren vill jämföra av AEM i bakgrunden för att underlätta skillnaderna. Detta krävs för att innehållet ska kunna återges för jämförelse sida vid sida.
Denna rekreationsåtgärd görs internt av AEM och är transparent för användaren och kräver ingen åtgärd. En administratör som visar databasen, till exempel i CRX DE Lite, skulle dock se dessa återskapade versioner i innehållsstrukturen.
När innehållet jämförs återskapas hela trädet fram till sidan som ska jämföras på följande plats:
/tmp/versionhistory/
En rensningsåtgärd körs automatiskt för att rensa upp det tillfälliga innehållet.
I det klassiska användargränssnittet måste man överväga en särskild utveckling för att underlätta AEM (t.ex. användning av cq:text
tagg lib, eller anpassad integrering av DiffService
OSGi-tjänst in i komponenter). Det här behövs inte längre för den nya diff-funktionen, eftersom skillnaden inträffar på klientsidan via DOM-jämförelse.
Det finns dock ett antal begränsningar som måste beaktas av utvecklaren.
Den här funktionen använder CSS-klasser som inte har något namnutrymme för AEM. Om andra anpassade CSS-klasser eller CSS-klasser från tredje part med samma namn inkluderas på sidan kan visningen av skillnaderna påverkas.
html-added
html-removed
cq-component-added
cq-component-removed
cq-component-moved
cq-component-changed
Eftersom differensen är klientsidan och körs vid sidinläsning, kommer eventuella justeringar av DOM efter att klientsidans diff-tjänst har körts inte att beaktas. Detta kan påverka
Jämförelse av sidskillnader fungerar bara för komponenter som har giltiga cq:editConfig-noder.