【问题标题】:How to keep the concurrent between database and web page?如何保持数据库和网页的并发?
【发布时间】:2021-08-12 09:55:25
【问题描述】:

假设有两个用户正在使用一个页面。页面中有一个“选择”元素,它通过 Ajax 从服务器获取数据。现在,一位用户在选择框中选择了一条记录,并尝试将它和其他值插入到数据库中。但可怕的是,由于某种原因,该记录已被另一个用户删除。第一个用户将 重新插入刚刚删除的记录。

更具体地说,选择框看起来像:

<select>
  <option>Birmingham</option>
  <option>Bradford</option>
  <option>Bath</option>//got deleted
</select>

用户会选择一条不存在的记录。

有什么方法可以保持数据库和网页之间的并发?或者直接忽略它,提示用户“插入失败”。或者可能等到他们意识到按“F5”重新加载保留页面。 也许这些问题都已经解决了?

我正在使用Spring+Spring MVC+Mybatis和Tomcat进行开发。任何方向或想法都会有很大帮助,非常感谢!!!

【问题讨论】:

标签: javascript java oracle spring-mvc tomcat


【解决方案1】:

同步不同用户CRUD操作的页面内容?您可以尝试 server-sent events API 或只是 AJAX 轮询,每秒钟查询一次是否有更改,请参阅文档

https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events

https://spring.io/guides/gs/messaging-stomp-websocket/

【讨论】:

  • Websocket 可能是完成这项工作的最佳工具,因为您在 client 和服务器之间保持持久连接。由您在服务器端决定如何在两个用户之间进行通信。也许向所有连接的用户“广播”这样的重要变化?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-28
相关资源
最近更新 更多