作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
环境:该应用程序使用 Spring Framework 2.5.6.SEC01 和 iBatis 2.3.4.726。这就是MVC设计。
场景如下:
从客户端输入/更新数据
按“更新”按钮提交
处理数据并执行DML(插入、更新、删除)
返回结果给客户端并显示数据
但是,在加载页面后,我需要通过Javascript调用API(我无法控制API,只需要传递所需的参数并检查结果是否成功或错误)
如果 API 返回 SUCCESS,则无需执行任何操作。但它返回 ERROR,我给出警报消息以通知用户。
我有 View (客户端)、服务和数据访问层。当客户端进行提交(场景#2)时,它进入服务处理数据并自动启动事务(场景#3)。退出服务并返回客户端时自动执行提交以显示数据(场景#4)。
问题:如何暂停事务而不执行提交,然后返回客户端通过Javascript调用API。 当API返回SUCCESS时,通过Ajax(或其他方式)执行提交,或者回滚它。
任何关于正确方向的指导都值得赞赏。
最佳答案
如果我理解正确的话,您想要启动一个数据库事务,插入数据(不提交),保持连接和事务打开,返回客户端,并根据一些 javascript 结果,进行提交。
这感觉像是一个奇怪的设计,客户端实际上可以保持连接打开,使您的应用程序极易受到 (D)DOS 攻击或一般客户端问题。
我会非常努力地对其进行如下改造:
这更快、更健壮,而且代码可能更少。
关于java - 有没有办法在多个客户端和服务器提交后显式提交和回滚事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6380238/
我是一名优秀的程序员,十分优秀!