我有一个包含entityStatus实体的entityManager:“已添加”。 当网站离线时,我想添加新实体并将它们导出到LocalStorage。当网站再次上线时,我需要将实体导回管理器并将其发送到服务器数据库。
除了一件事之外,我有这个工作:如果我有几个浏览器窗口在离线模式下打开,则试图从所有页面发送数据。当互联网连接出现时,打开的浏览器窗口中的所有脚本会同时发送相同的数据。因此,我的数据库中有几条相同的记录。
更新:删除本地存储中保存的条目不是最佳解决方案,因为发送可能会失败,我将丢失数据。删除发送回调中的本地存储条目也不能解决问题,因为那时所有打开的窗口都已经从本地存储中提供数据并将重复发送到DB
避免多个页面多次保存的策略是什么?
答案 0 :(得分:1)
我不完全确定我理解这个问题。更多细节会有所帮助。但根据您所说的内容,我假设客户端首次启动时的第一步是从localStorage检索导出的一组实体,然后尝试保存它。我的建议是每个客户端应该在读取后立即清除localStorage,以便任何其他客户端不会尝试重播相同的更改,然后只有在客户端无法连接到localStorage时才将数据写回localStorage。服务器。
不确定这是否是您的问题。