2010-12-16 22 views
1

公開用のWebページコンテンツの承認に使用される「コンテンツ更新レビュープロセス」を迅速に行うため、私は2つのWebページのバージョンを比較するJavaScript関数を実装しようとしています。JavaScriptのWebページのバージョン比較

これまでは、特定のページの新しいバージョンと古いバージョンの比較対象のコンテンツを読み込むページを作成しました。 JavaScript/jQueryを使用してそれぞれのHTMLを繰り返し処理する(比較的)簡単な方法はありますか、どのコンテンツが変更されているのか見当たりませんか?

(これは本質的にhtmlテキストのcomareですので)非常に多くのhtml固有の詳細があるので、私は使用できるJavaScriptライブラリがありますか?

私は最初にこれをPHPで実装することを追加する必要があります。残念ながら、JavaScriptなどの限られたリソースだけを使用できるようにする多くの制約があります。

+3

それはJavascriptでなければなりませんか?サーバー側の言語は疑問から外れていますか? –

+0

私たちはASP.NETでそれを行うことができますが、正直なところです。私は公共機関で働き、実際のコーディングを含む何かをするにはIT部門の監督が必要です。残念ながら、これを1年足らずで済ませる必要があります。 –

+0

「実際のコーディングをしない」ことを考えているなら、CMSに引用してください。 –

答えて

2

バージョンコントロールはで、問題はありませんです。これがあなたの「コンテンツ更新レビュープロセス」の一部である場合は、最初から実装する必要はありません。

代わりに、SubversionGit、またはお好みのソース管理ソリューションのようなツールを使用することを検討してください。

本当にとしたい場合は、RegexのマッチングからDOMマッチングのような単純な処理に移行できます。私が知っている "マジックライブラリ"はありません。それはあなたのためにこれをカプセル化するので、動作するでしょう。おそらく間違っていると思う仕事。

バージョン管理プロバイダを真剣に考えてみるか、ページのバージョンを組み込んだCMSを使用してください。あなたが気難しいと感じたら、オープンソースのCMS(Drupalなど)をチェックして、バージョン管理の実装方法を理解してから、リバースエンジニアリング/リエンジニアリングを自分で行ってください。私はその非効率性が明らかであることを願っています。

1

Iは3でこれを行うであろう

1 /セグメント2つのアレイの各ページ ため

にコンテンツステップ。 "。"のような区切り記号を選択してください。 「 」のいずれかです。あなたは、大きな文字列としてコンテンツを持って、それを分割し、配列

2 /、配列にセグメント化されたコンテンツを含むこれらの2つのアレイで

ループを比較するのは、[idxA]をしましょうとB [idxB] を構築します。 A [idxA] == B [idxB]の場合、idxA ++とidxB ++ です。そうでなければ、A [idxA] == B [index] のインデックスがあるかどうかを調べる。存在する場合は、idxBとindexの間のすべてのインデックスに "B modified"とマークしてください。 他に、としてidxAをマークし、「修正」

3 /あなたはAとBが等しくないすべてのインデックスを持つ必要があります終わり違い

を表示します。違いを強調するマークアップを追加した後、2つの配列を結合することができます。

これは完璧な解決策ではありませんが、時には間違っていることもあります。あなたが完璧にしたい場合は、いくつかの一致をテストし、それを最小限に抑えるために差の数を計算する必要があります

関連する問題