私は、サイト全体で使用している「履歴ビュー」メカニズムを強化するソリューションを考え出しています。この履歴ビューのUIについては、オブジェクトの2つのリビジョン間でどのような変更が発生したかをユーザーに示したいと思います。言い換えれば、diff。HTML用の構造化された(ツリー)diffを作成するためのjavascriptライブラリはありますか?
問題のオブジェクトはすべてかなり複雑なので、これは実際の課題です。最良の方法は、各オブジェクトをHTMLとしてレンダリングし、生成されたHTMLにある種の差分ツールを使用して、その違いをユーザーに提示することだと考えました。
私がこれまで働いてきたソリューションに最も近いのは、google-match-patchライブラリ(http://code.google.com/p/google-diff-match-patch/)です。私は構造化されたコンテンツ(http://code.google.com/p/google-diff-match-patch/wiki/Plaintext)でgoogle-match-patchを使用するためにwikiに記載されている推奨された方法の1つを実装しましたが、結果は正しくありません。参考のために、ここで私の(多少の粗 - 私はちょうどコンセプトテストしていた)であるコードを:https://gist.github.com/921264
私の質問:は、上記のwikiページ上で説明したように、「正解は、ツリーベース差分を使用することです、マッチとパッチ。誰もがJavaScriptで書かれたそのようなライブラリを提案することはできますか?
私はDaisyDiff(java)を試してみましたが、結果には感動しませんでした。
EDIT:Here is a working jsfiddleショーと-伝えるために!
EDIT#2:共有がを世話されていますhttps://github.com/GenuineParts/TableDiff
これはすべて簡単な履歴表示のためのものですか?そのデータはどのように保存されていますか?問題のページは、それ自体をリフレッシュするか、またはユーザーがそれに戻るのですか?私は、このシナリオのための2つのより単純なソリューションを考えることができます。 – Khez
シンプルなソリューションのアイデアをご紹介ください!データ:各履歴「スナップショット」は、ネイティブオブジェクトに解析するJSON文字列です。私はページ自体に関してあなたの質問に従いません。 –
歴史を示すページ。サンプルデータをお願いします。私たちはどのような歴史を紹介していますか? – Khez