【问题标题】:Zend framework concurrency and ajaxZend 框架并发和 ajax
【发布时间】:2010-12-17 22:00:21
【问题描述】:

我正在使用 zend 框架开发一个 Web 应用程序。这是一个出售电影票的应用程序。该应用程序允许用户选择座位然后购买门票。 (这个问题类似于经典的机票预订。) 我有两个问题。

问题 1: 显示所有席位的页面必须使用 ajax 刷新(如果有席位,则为绿色,如果不可用,则为红色):每个席位都是页面中的一个 div。例如,如果 USER A 正在观看有座位的页面,而另一个 USER B 买了票,则相应的座位必须为 USER A 变为红色而不刷新页面。我怎样才能刷新每个 div?我想使用 jquery,我尝试每秒为每个 div 做一个 json 请求,但它太慢了。有什么想法吗?

问题 2: 如何管理并发?如果用户 A 和用户 B 同时点击购买同一张票(同一个座位的票),我该怎么办?我使用的是 InnoDB 引擎,但我必须在相关控制器中管理事务吗?

非常感谢!

【问题讨论】:

    标签: zend-framework concurrency


    【解决方案1】:

    我认为对于问题 1,您可以使用 Comet 将数据从您的网络服务器推送到浏览器。

    不幸的是,我不知道如何实际使用它。

    【讨论】:

      【解决方案2】:

      我可能会以不同的方式解决问题 1 和 2(正如我在许多票务网站上看到的那样)。一旦用户选择了座位,我将使用数据库中的时间戳更新座位。这将推断座位已被占用。然后用户有 1 分钟(或一些时间)来购买门票。如果他们不这样做,则时间戳会变回 null。

      sql 会相当简单。基本上,系统会为 B 人扫描该表,并说返回时间戳为空或(现在 - 时间戳 > 1 分钟)的任何可用座位(数据库中的行)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-03
        • 1970-01-01
        相关资源
        最近更新 更多