我有一个网络服务器,可以为特定学科的学生生成问题。 Web服务器需要跟踪每个学生在一组特定问题上花费了多少时间。
网页上有一个“完成”按钮,按下该按钮可使统计信息发送到服务器。
但是,如果学生离开页面或关闭浏览器窗口而不按“完成”,我也希望Web浏览器发送统计信息。
为此,我计划让“ onunload”或“ onbeforeunload”将Ajax请求以及相关信息发送到服务器。但是显然不同的浏览器不能完全支持这些事件,并且事件处理程序中可以执行的操作也受到限制。而且,当然,如果与服务器的通信失败,我也不想冻结浏览器。
因此,我需要一些有关最佳方法的建议。
最佳答案
如果我想确保处理所有“特殊事件”,我会将壁虱“请求”从网页发送到服务器。粒度取决于跟踪要求,负载以及它是Intranet还是Internet应用程序。可能是几秒钟甚至一分钟。因此,即使浏览器/操作系统/网络崩溃,您也可以跟踪在页面上花费的时间。
关于javascript - Onunload,onbeforeunload-需要指导,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16668445/