首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动保存原理

自动保存原理
EN

Stack Overflow用户
提问于 2013-11-06 12:28:58
回答 1查看 209关注 0票数 0

我有一个表单,用户可以用它来提交报告。由于其中一个字段是文本区域,它们可以放置相当长的文本,所以我想插入一个函数,它每分钟左右自动保存条目,但我不确定这背后的原理。

我能想到的解决办法是:

  1. 自动将当前条目作为版本保存在数据库中(例如。Entry_id = 1,版本= 1,可见性= FALSE)
  2. 1分钟后,自动保存为Entry_id = 1,Version = 2,Visibility = FALSE)
  3. 继续重复上面的内容,直到:
  4. 用户按“保存”。在这种情况下,将上一个版本的可见性更改为TRUE,并删除所有其他版本(所有entry_id == 1和可见性== FALSE的条目)。
  5. 用户选择不保存(“丢弃”)。在本例中,我删除了entry_id == 1和可见性== FALSE的所有条目。

两个考虑因素:

  • 如果客户正在编辑现有条目,上述内容也应该运行良好。
  • 我不能再用entry_id作为主键了

这似乎在我的脑海中起作用,但我想知道我是否在使用一个非常复杂的过程,还有一个更好的过程吗?

谢谢你,P

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-06 12:48:44

一旦表单被加载,一个函数将被触发,它将在每10秒(或您提到的任何时间)之后重复自己。该函数将采用您的形式,将其序列化并发送到服务器端脚本(很可能是PHP),而PHP脚本将(通过AJAX)在数据库中插入该记录,并返回插入记录的主键(id)。现在,当函数第一次执行时,它使用以下参数插入记录:

代码语言:javascript
复制
Entry_id = 1 (or whateverthe primary key at which the record is saved), 
Version = 1, 
Visibility = FALSE

此函数返回一个主键。因此,现在您必须在autosave函数开始时进行检查,检查主键是否返回(已插入记录),如果此键已被返回,则它将再次获得表单序列化,并将其发送到服务器端脚本中的另一个函数(Update函数)以及从第一个自动保存调用返回的主键作为参数,并根据数据库中的该键更新记录。

现在,用户继续输入内容,自动保存函数在每10秒之后继续运行,数据被插入(这是第一次)并不断更新。一旦用户按下窗体上的“保存”按钮,再次获取该主键并使用以下值更新该记录:

代码语言:javascript
复制
Version = 1, 
Visibility = TRUE
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19812160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档