0

主要な学校のプロジェクトでは、リアルタイムの共同編集者を実装しています。少し背景を説明すると、基本的にこれが意味するのは、2人(またはそれ以上)のユーザーが同時にドキュメントに入力でき、それらの変更が自動的に相互に伝播されることです(Etherpadと同様)。

今私の問題は次のとおりです:

ユーザーがHTMLテキストフィールドに対して実行した変更を検出できるようにしたい。彼らはできる:

  • 文字を挿入する
  • 文字を削除する
  • 文字列を貼り付けます
  • 文字列をカットする

これらの変更のどれが発生したかを検出し、「位置2に文字「c」を挿入」などのように他のクライアントに通知できるようにしたいと思います。

とにかく、これらの変更の検出を実装する方法についてアドバイスをもらいたいと思っていましたか?

私の最初の試みは、変更が発生する前後のニンジンの位置を検討することでしたが、これは惨めに失敗しました。

2回目の試行では、テキストフィールドの新旧の値の内容全体を比較することを考えていました。このソリューションで明らかな何かが欠けていますか?もっと簡単なものはありますか?

4

2 に答える 2

1

いくつかの理由から、今日これを機能させるのは本当に大変な作業ですが、

個人的なメモ: 単語の検出、文字の変更はまったく無意味で役に立たない可能性がある、代わりに段落の変更を検出する、または Excel のようなワークシートの場合は単一のセル

これが役立つことを願っています

私の英語を自由に修正してください!

于 2012-01-29T04:36:35.413 に答える
0

私の疑似コード/書き出された応答は、(あなたの質問を正確に理解していれば)jQueryを使用してキーアップイベントを検出し、入力をajax経由でサーバーに保存し、応答を取得して入力に戻すことです。これはあまり効率的ではありませんが、基本的には、常に投稿し、他に何が投稿されているかを確認するという考え方です。他の誰かが何をしているかをリアルタイムで知りたい場合は、1 秒ごとにサーバーに ping を実行し、応答を更新できます。

もちろん、これはすべて最適化できますが、それでもサーバーにとっては一種の負担になります。また、プロジェクトにGoogle Topeka Wave を実装できるかどうかを確認したり、 Google Topekaに連絡してその方法を確認したりすることもできます:)

于 2010-04-01T19:09:37.810 に答える