当前位置: 首页 > 知识库问答 >
问题:

前端自动保存功能,保存到本地,取值优先取缓存的,换了电脑数据同步问题?

袁宜
2023-07-05

前端自动保存功能,监听表单数据改变然后保存到本地,如果本地有值的话就去本地的值,没有值的话取后端返回的数据,但是如果现在A电脑和B电脑如果打开了同一个表单,A补充了数据并且提交了,但是由于优先取得是缓存的数据,B电脑回显的值和A提价的值不一致。

共有3个答案

刘丰羽
2023-07-05

其实不光时表单打开时的取值时本地数据会和服务器最新数据有差异。
在表单打开之后,如果有其他人有提交新数据,在一开始的对比其实会通过,所以在用户A(A电脑)打开表单到提交表单这段操作时间内,其他用户由提交修改,都会被用户A晚提交的数据覆盖。

如果你不想弄得太麻烦,就可以在打开时和评论一样,对比一下修改时间,但并不靠谱。
因为可能出现这样的情况:

  • 用户A在11点20分修改了表单的A数据缓存在了本地;
  • 用户B在11点21分修改了表单的B数据并且提交到了服务器中。

并不是同一个数据但是服务端的数据修改时间会晚于本地时间,造成原本A在本地修改的数据被服务端数据覆盖。

所以可以调整为用户修改了某个属性值之后再缓存在本地,如果没有修改则不保存。提交时也是一样,修改了什么值则提交什么值,过滤掉没有修改的值,这样就算其他用户有修改,只要不是修改的同一项数据,都不会被不小心覆盖。

如果想要做的麻烦一些,可以参考很多在线文档的协同编辑模式,使用WS来同步各个用户之间的操作。

程俊力
2023-07-05

你这个本地数据时效性重要吗?不重要的话就设置一个过期时间,本地的数据有效期只有1小时,如果过期了了则再从后端获取.

再或者即是将数据存到缓存数据库redis中实现缓存共享.

饶元章
2023-07-05

1.用WebSockets
2.前端定期检查服务器的数据

 类似资料:
  • 问题内容: 实现自动保存功能的最佳javascript库或库的插件或扩展是什么? 特定的需求是能够“保存”数据网格。考虑gmail和Google Documents的自动保存。 如果车轮已经被发明,我不想重新发明。我正在寻找神奇的autoSave()函数的现有实现。 自动保存:推送到保存到持久性存储(通常是数据库)的服务器代码。服务器代码框架不在此问题的范围内。 请注意,我不是在寻找Ajax库,而

  • 本文向大家介绍python requests库爬取豆瓣电视剧数据并保存到本地详解,包括了python requests库爬取豆瓣电视剧数据并保存到本地详解的使用技巧和注意事项,需要的朋友参考一下 首先要做的就是去豆瓣网找对应的接口,这里就不赘述了,谷歌浏览器抓包即可,然后要做的就是分析返回的json数据的结构: https://movie.douban.com/j/search_subjects?

  • 我们可以通过下面的简单算法实现该目的: 检查本地缓存的键(key); 如果本地缓存存在该键,则返回它的值; 如果本地缓存不存在该键,则尝试在分布式缓存中找; 如果分布式缓存存在该键,则返回它的值并把它添加到本地缓存; 如果分布式缓存不存在该键,则从数据库中获取,并添加到本地和分布式缓存,最后返回该值。 当在本地缓存服务器中缓存一些信息时,使用这种方式,它还将信息缓存到分布式缓存,但这一次,如果其他

  • Serenity 提供一些缓存抽象和实用功能让你更容易地使用本地缓存。 术语 本地(local) 的意思是指在本地内存中缓存项目(因此没有涉及到序列化)。 当你的应用程序在网站群(web farm) 中部署时,本地缓存可能还不够或者有时合适。我们将在 分布式缓存 章节中讨论该场景。

  • 问题内容: 是否可以将JSON数据保存到本地文本文件中?因此,稍后我可以通过加载该文件再次使用它,并取回存储的JSON数据。其实我真正想做的是在文本文件中导出JSON数据,以便以后可以用作import.Any的建议或解决方案? 这是我要用于导出到文本的一些示例。 http://jsfiddle.net/k56eezxp/ 问题答案: 是否可以将JSON数据保存到本地文本文件中? 是。当前,链接的j

  • 我使用的是在远程服务器上运行的ipython笔记本电脑。我想在本地保存笔记本中的数据(例如熊猫数据框)。 目前,我正在将数据保存为远程服务器上的. csv文件,然后通过scp将其移动到我的本地机器。有没有更优雅的直接从笔记本电脑获取的方法?