我正在用zend框架开发一个web应用程序。这是一个卖电影票的应用程序。该应用程序允许用户选择一个座位,然后购买门票。(问题类似于经典的机票预订。)我有两个问题。
问题1:显示所有座位的页面必须使用ajax刷新(如果可用,座位是绿色的,如果不可用,则为红色):每个座位都是页面中的div。例如,如果用户A正在观看带有座位的页面,而另一个用户B购买票证,则相应的座位必须为用户A变为红色,而无需刷新页面。我怎么能刷新每一个div?我想使用jquery,我尝试每秒钟为每个div执行一个json请求,但是它太慢了。有什么想法吗?
问题2:如何管理并发?如果用户A和用户B同时点击购买同一张票(同一座位的票),我该怎么办?我使用的是InnoDB引擎,但是必须在相关控制器中管理事务吗?
非常感谢!
发布于 2009-11-18 15:30:06
我认为,对于问题1,您可以使用彗星将数据从the服务器推送到浏览器。
不幸的是,我不知道如何实际使用这个。
发布于 2009-11-21 23:03:44
我可能会以不同的方式解决问题1和问题2(就像我在很多票务网站上看到的那样)。一旦用户选择了一个座位,我将用数据库中的时间戳更新该座位。那就推断出座位已经有人坐了。然后,用户有1分钟(或一定时间)购买门票。如果没有,时间戳将更改为null。
sql将相当容易。基本上,系统将扫描该表中的person B,并表示返回任何可用的座位(数据库中的行),其中时间戳为null或(现在-时间戳>1分钟)。
https://stackoverflow.com/questions/1756630
复制相似问题