在文本编辑器应用程序中自动保存触发器

时间:2013-03-25 14:09:52

标签: text editor save text-editor autosave

我需要在文本编辑器Web应用程序中实现自动保存功能,以便在用户键入时管理自动保存。我对这种技术没有具体的了解,所以我想知道它是如何在现代的基于Web的文本编辑器中处理的,特别是在触发保存功能时:

  • 是由键盘事件本身还是通过定期扫描(例如每5秒)触发一次,以检查以前的键盘事件?
  • 当用户没有输入时(例如,在3秒不活动之后)是否必须触发以减少网络流量?

有什么建议吗?

由于

3 个答案:

答案 0 :(得分:4)

例如,here在Wordpress中被描述为自动保存。我的意见取决于应用类型。我想,找到最佳解决方案的最佳方式是,如果您访问某个网站,您希望看到这种方式。

所以,如果你把某个地方设置为“保存”按钮,那么我认为你真的不需要每隔几秒触发一次,而是每隔几分钟(就像Wordpress一样)。

由于您将通过客户端语言(可能是JavaScript)监听事件,因此您无需担心性能 - 如果需要,只需每10秒钟收听一次,并检查是否满足自动保存的要求。如果是的话,你可以用一些AJAX魔法将它保存在某个数据库中。

如果我是你(或者,如果我是你网站的用户),我想在第一个keyUp上开始收听事件。当我输入第一个字母时,JS会每隔1分钟通过AJAX存储在DB中,或者每500-1000个字符输入一次,无论第一次遇到什么。 我想如果考虑到某人输入速度更快,某人更慢,那就太棒了。这就是为什么我要检查输入的字符数以及时间。

这是我的意见。 (最后对不起语法,免费编辑:D)

编辑:此外,如果网站是您的,并且您期望一些大流量和大量用户,您可以动态地查看系统如何工作并相应地设置您的变量(更长/更短的时间/字符)

答案 1 :(得分:1)

我认为没有“正确答案”。这取决于您对应用程序的工作方式。

如果要使服务器上的数据始终与前端文本保持一致,则应将保存功能绑定到键盘事件。但是,在正常情况下,它显然效率低,带宽消耗且不必要。

如果数据一致性对您来说不那么重要,那么在固定时间段之后检查文本并保存(如果文本已更新)是正确的方法。

答案 2 :(得分:1)

我正在为博客网站开发一个类似的工具。事实证明,它需要更多的计算保存点,而不仅仅是:

  • 每隔x秒
  • 在x秒不活动后

除了上述内容,我还补充说:

  • 单击文本框时
  • 关闭页面之前
  • 跟踪保存操作并确保它们不会发生冲突或保存太多次
  • 在文本框中未键入时停用自动保存

在我们的案例中,它是一个Web应用程序,我使用了javascript,确保它快速可靠至关重要。

您可以在http://www.omidmufeed.com/autosaving-text-editor-with-javascript/

找到我的解决方案

我希望这有助于某人。