開発とページの差分

最終更新日: 2023-05-04
  • トピック:
  • Developing
    このトピックの詳細を表示
  • 作成対象:
  • Developer
注意

AEM 6.4 の拡張サポートは終了し、このドキュメントは更新されなくなりました。 詳細は、 技術サポート期間. サポートされているバージョンを見つける ここ.

機能概要

コンテンツの作成は反復的なプロセスです。 効率的にオーサリングを行うには、何がイテレーションから別のイテレーションに変わったかを確認できる必要があります。 あるページバージョンを見てから別のページバージョンを見るのは非効率的であり、エラーが発生しやすくなります。作成者は、現在のページを前のバージョンと並べて比較し、違いを強調表示したいと考えています。

ページの差分を使用すると、現在のページを起動回数、以前のバージョンなどと比較できます。 このユーザー機能の詳細については、 ページの差分.

操作の詳細

ページのバージョンを比較する場合、差分を検出しやすくするために、比較対象となる以前のバージョンが AEM によってバックグラウンドで再作成されます。これは、並べて比較できるようにコンテンツをレンダリングするために必要です。

この再作成操作は AEM の内部でおこなわれるもので、ユーザーに対しては透過的であり、ユーザーの介入は必要ありません。ただし、管理者が CRX DE Lite などでリポジトリーを閲覧している場合は、再作成されたこれらのバージョンがコンテンツ構造内に表示されます。

AEMパッチレベルに応じて、動作は異なり、正しく機能するために特定の権限が必要になる場合があります。

AEM 6.4.3 以前

コンテンツを比較すると、比較対象のページまでのツリー全体が次の場所に再作成されます。

/content/versionhistory/<userId>/<site structure>

ページの差分メカニズムを使用する場合、AEMでは以前のバージョンのページが再作成されるので、この機能を使用するには、特定の JCR 権限が必要です。

注意

ページの差分機能を使用するには、 変更/作成/削除 ノードに対する権限 /content/versionhistory.

AEM 6.4.3 以降

コンテンツを比較すると、比較対象のページまでのツリー全体が次の場所に再作成されます。

/tmp/versionhistory/

このコンテンツは、現在のユーザーの表示を制限する権限を持つサービスユーザーが作成します。 このため、特別な権限は必要ありません。

クリーンアップタスクが自動的に実行されて、この一時コンテンツがクリーンアップされます。

開発者の制限事項

以前の Classic UI では、AEM の差分取得を容易にするために開発に関して特別な考慮が必要でした(例えば、cq:text タグライブラリの使用、DiffService OSGi サービスのコンポーネントへのカスタム統合など)。差分は DOM 比較を通じてクライアント側で実行されるので、新しい差分機能ではこれが不要になりました。

ただし、開発者が考慮する必要がある制限事項はいくつかあります。

  • この機能では、AEM 製品の名前空間にない CSS クラスが使用されます。同じ名前の付いた他のカスタム CSS クラスまたはサードパーティの CSS クラスがページに含まれている場合、差分の表示に影響が及ぶ可能性があります。

    • html-added
    • html-removed
    • cq-component-added
    • cq-component-removed
    • cq-component-moved
    • cq-component-changed
  • 差分はクライアント側で、ページの読み込み時に実行されるので、クライアント側の差分サービスの実行後に DOM を調整した場合、その調整は考慮されません。 これは、

    • コンテンツを組み込むためにAJAXを使用するコンポーネント
    • 単一ページアプリケーション
    • ユーザーの操作に応じて DOM を操作する JavaScript ベースのコンポーネント。

このページ