数据库访问中的Web和桌面应用程序之间的差异

时间:2016-06-01 14:15:21

标签: asynchronous web-applications transactions desktop-application

我有一点理论问题。

创建Web应用程序时,桌面应用程序与数据库的工作和活动连接存在差异。所以我很好奇是否有一些解决方案,它可以提供更多类似桌面的数据库访问,例如来自客户端(Web浏览器)的异步请求的事务?

修改 所以我发现,从客户端可以有异步请求的事务处理。有解决方案,可以在网络应用程序中提供吗?

例如,我有assynchronou ajax调用,它由多个操作组成,我想将它们作为事务处理。如果一切正常,操作将全部完成。但如果其中一个失败,只需回滚它。就像在DB中一样。有可能吗?

edit2:也许我错了,问题不是关于ajax,而是关于整个网络应用程序,但我不认为有一种方法如何从Web客户端发出异步请求。

2 个答案:

答案 0 :(得分:1)

数据库不知道谁在身份验证之外连接。

答案 1 :(得分:1)

交易需要连续连接数据库。要使其与Web应用程序一起使用,您需要一个允许应用程序独立于客户端请求而连续运行的平台。 Java servlet最适合,php是禁忌。所以我认为你将使用java servlet。

在java servlet中,您可以创建db事务,为其创建id,然后将它们存储在静态变量或提供的应用程序范围的对象上下文中。然后,将id返回给客户端。

当客户想要发送另一个请求时,让它发送id。然后,应用程序可以根据id找到事务变量。只要应用程序没有在两个请求之间重新启动,事务仍处于活动状态。

由于Web应用程序不知道用户何时离开应用程序,因此您必须创建一种机制来定期检查事务,然后在用户离开指定时间段时将其回滚。