如何实现自动保存

时间:2016-04-15 21:41:14

标签: javascript jquery

我有一些代码,只要用户离开文本框,就会在服务器上异步调用save方法。但是,用户可能会花费很长时间在单个文本框中而不会离开,如果他们的会话超时,那么他们将在尝试保存时丢失他们输入的内容。所以我也想定期保存(也许每分钟一次)。

我想我可以添加一个onfocus事件,每分钟会保存一次该字段,但是当我们离开时我可以使用onblur删除该事件。

旁注:每次自动保存时,都会重新启动会话超时。为了防止他们的会话无限期地进行,我也将检查自上次按键以来已经存在了多长时间,并且如果超过一分钟(或者保存间隔是什么)则不会保存。

一方面,这开始显得过于复杂,所以我不得不问:是否有更简单,更直接的方法来实现这一目标?如果没有,那么我是否应该非常关注onblur事件未被调用且无法断开自动保存事件的任何情况?

1 个答案:

答案 0 :(得分:1)

避免"附加"和"分离" onfocus 和中的事件     的的onblur

  • onfocus 中,仅将当前的焦点字段(DOM节点)保存到 变量

  • 只有一个 setInterval 全局计时器用于自动保存,它会 从该变量中保存字段的字段值

关于会话延续:

  • 只要字段值发生变化,这意味着用户改变了它[除非 你的编辑器非常动态并且可以自我编辑]

  • 因此无需记录按键,只需保留 Last_Saved_Field_Value ,以防止两次保存相同的内容。