私は、クライアント側のエディターがサーバー側で知られている非常に大きなテキストを編集しているWebアプリケーションを持っています。
クライアントは、このテキストにあらゆる種類の変更を加えることができます。
サーバーが理解できる方法で結果の違いを送信するための最もネットワーク効率の良い方法は何ですか?また、これはクライアント側(Javascript)で発生するため、「高速」(または少なくとも目立って遅くない)にすることもできます。
いくつかのシナリオ:
- ユーザーが1文字を変更する
- ユーザーがランダムな位置でいくつかの文を変更する
- ユーザーはすべてを消去し、空白のテキストになります。
ネットワーク効率が良くないため、diffのような構文を使用することはできません。行をチェックし、例1と3でひどい違いが生じます(特に最後の例では、結果が古いものよりも大きくなります)。
誰かがこの問題の経験がありますか?ユーザーは非常に大量のデータセット(約3〜5 MBのテキスト)を操作し、「新しい」コンテンツ全体をアップロードすることは大したことではありません。
明確にするために、私は転送の「プロトコル」を探しています。文字列の比較は問題ではありません。