Sviluppo e differenze tra pagine developing-and-page-diff
Panoramica delle funzioni feature-overview
La creazione dei contenuti è un processo iterativo. Per un authoring efficace, è necessario essere in grado di vedere cosa è cambiato da un’iterazione all’altro. La visualizzazione separata di due versioni di una pagina è inefficiente e soggetta a errori. L’autore vuole poter confrontare la pagina corrente con una versione precedente evidenziando le differenze.
La differenza di pagina consente a un utente di confrontare la pagina corrente con lanci, versioni precedenti e così via. Per informazioni dettagliate su questa funzionalità utente, vedere Differenze tra pagine.
Dettagli operazione operation-details
Quando si confrontano le versioni di una pagina, la versione precedente che l’utente desidera confrontare viene ricreata dall’AEM in background per facilitare la differenza. Questo è necessario per poter eseguire il rendering del contenuto per il confronto affiancato.
Questa operazione di ricreazione viene eseguita internamente dall'AEM, è trasparente per l'utente e non richiede alcun intervento. Tuttavia, un amministratore che visualizza l’archivio, ad esempio, in CRXDE Lite vedrebbe queste versioni ricreato all’interno della struttura del contenuto.
Quando si confronta il contenuto, l’intera struttura fino alla pagina da confrontare viene ricreata nella seguente posizione:
/tmp/versionhistory/
Un’attività di pulizia viene eseguita automaticamente per pulire questo contenuto temporaneo.
Autorizzazioni permissions
In precedenza, nell'interfaccia classica, era necessario prestare particolare attenzione allo sviluppo per facilitare la diffusione dell'AEM (ad esempio utilizzando la libreria di tag cq:text
o integrando in modo personalizzato il servizio OSGi DiffService
nei componenti). Questa funzione non è più necessaria per la nuova funzione di differenze, poiché la differenza si verifica lato client tramite il confronto DOM.
Tuttavia, ci sono alcune limitazioni che devono essere considerate dallo sviluppatore.
-
Questa funzione utilizza classi CSS che non fanno parte del namespace del prodotto AEM. Se nella pagina sono incluse altre classi CSS personalizzate o classi CSS di terze parti con gli stessi nomi, la visualizzazione delle differenze potrebbe esserne influenzata.
html-added
html-removed
cq-component-added
cq-component-removed
cq-component-moved
cq-component-changed
-
Poiché la differenze è lato client ed viene eseguita al caricamento della pagina, eventuali modifiche apportate al DOM dopo l’esecuzione del servizio differenze lato client non verranno contabilizzate. Questo può influire
- Componenti che utilizzano l’AJAX per includere i contenuti
- Applicazioni a pagina singola
- Componenti basati su JavaScript che manipolano il DOM in base all’interazione dell’utente.