【发布时间】:2014-10-13 11:08:06
【问题描述】:
我有一些酒店预订网站。 符合条件的人可以选择酒店、日期和容量并为订单付款。
当客户做出决定并点击订单按钮时,会发生以下几步:
-
应用程序再次检查价格并收集订单信息
-
为客户节省房间以防止超额预订
-
客户订单窗口的计时器设置为 5 分钟(如果时间过去了,房间就会被释放)
如果客户端退出组织页面,则会触发 null_timer 并 已保存的房间被释放
如果客户开始订单(在订单页面),他不能处理其他 订单
-
$_SESSION['order_iddle']和 timer 更改触发自 客户端通过 ajax
JS 触发器
window.onbeforeunload = function(){
timer_null();
return "";
}
PHP 检查
if ((!isset($_SESSION['order_iddle'])) || (!$_SESSION['order_iddle']) ) {
header('location: https://home-page/');
}
-
$_SESSION['order_iddle']用 php 中的计时器更新。 -
timer_null()向 php 发送 ajax 请求以更新/检查计时器
问题一:
此逻辑依赖于onbeforeunload() 函数,但如果该函数在某些浏览器中不起作用,我们就会遇到麻烦。当用户离开订单页面时,是否有更好的方法来触发timer_null()?也许在 PHP 中?
问题2:
当onbeforeunload() 触发并且用户点击“留在页面上”时,timer_null() 无论如何都会触发。
有什么关系吗?
谢谢)
【问题讨论】:
标签: javascript php web-applications logic