Kra*_*anu 8 html javascript ajax performance jquery
我只是在这里寻找想法/建议; 我不是要求一个完整的解决方案(虽然如果你有一个,我很乐意看到它)
我正在尝试找到一种只将更改上传到文本的方法.它最有可能被用作运行在jQuery和HTML上的基于云的应用程序,其中PHP服务器运行后端.
例如,如果我有文字喜欢
asdfghjklasdfghjkl
Run Code Online (Sandbox Code Playgroud)
我把它改成了
asdfghjklXasdfghjkl
Run Code Online (Sandbox Code Playgroud)
我不想上传整个东西(文字可以变得很大)
例如,8,X发送到服务器的东西可能表示:
add an X to the 8th position
或者D8,3可以表示:
go to position 8 and delete the previous 3 terms
但是,如果单个请求在到服务器的途中损坏,则整个文档可能会被破坏,因为位置会被更改.一个简单的哈希可以检测到腐败,但那么如何才能从腐败中恢复呢?客户端将拥有所有数据,但数据可能非常大,并且不太可能上传.
所以感谢您阅读本文.以下是需要建议的简短摘要
已经有一种公认的形式来传输这种“差异”信息。它称为统一差异。
google -diff-match-patch提供了 Java、JavaScript、C++、C#、Lua 和 Python 的实现。
您应该能够将“原始文本”和“修改后的文本”保留在客户端的变量中,然后在 javascript 中生成差异(通过 diff-match-patch),将其与哈希一起发送到服务器,并在服务器上重新构建它(使用 diff-match-patch 或 unix“patch”程序)。
当您首先将原始文本发送给客户时,您可能还需要考虑包括“版本”(或修改日期)。然后在客户端发送到服务器的“差异请求”中包含相同的版本(或日期)。在应用差异之前验证服务器上的版本,以确保在进行修改时服务器的文本副本与客户端的副本没有分歧。(当然,为了使其正常工作,您需要在每次更新主副本时更新服务器上的版本号)。
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |