【发布时间】:2015-12-15 01:43:19
【问题描述】:
我正在制定某人在某个 jsp 页面停留多长时间的协议,因此我在 body-tag 中调用了三个函数:
<body onunload="pageLeft();" onload="pageEnter(); startInterval();">
pageEnter 向服务器发送一个 ajax 请求,其中包含页面的 ID 和一个用于页面输入的“1”。
startInterval 开始一个间隔并每隔几秒向服务器发送一个 ajax 请求,其中包含一个“2”表示仍然存在。
pageLeft 通过 ajax 发送一个“3”,所以我知道用户已经离开了页面。
最重要的是“1”和“3”,它们用于对所有协议数据进行分组。
页面上还有一个带有提交按钮的表单:
<form action="/UpdateDB/Customers.jsp" method="POST" name="Custpost">
我的意图是将表单数据转移到Customers.jsp,然后当前页面被卸载并Customers.jsp被加载。
我在Customers.jsp 中制作程序的所有尝试都失败了,现在我发现了原因:
在数据库中只有 1s 和 2s,但没有 3。这意味着当前页面从未被卸载 - 但过程已经开始......
我曾考虑在 Customers.jsp 中手动设置 3 条目,但这会在数据库中留下两个这样的条目。此外,如果用户只是离开页面,则根本不会留下 3 个条目。
我该怎么办?
【问题讨论】:
-
尝试使用
onbeforeunload方法,如果有效,请告诉我。 -
不幸的是,根本没有任何变化......
-
好吧,我现在看到它实际上变得更糟了......现在根本没有调用 pageLeft-Function
-
任何特定的浏览器?还是全部还是他们?
-
不,我主要关注 Firefox。我认为某处必须是镀铬,但我几乎不使用它