【问题标题】:AJAX time spent on a website在网站上花费的 AJAX 时间
【发布时间】:2012-04-02 01:09:02
【问题描述】:

我们进行了一项在线调查,因此我们想计算花费的时间。使用 javascript 和 php 我们发现所花费的时间并不是 100% 准确的。

原始脚本每 5 秒发送一次服务器请求并更新数据库中的时间。

我做了一个研究,发现 setTimeOut 和 setInterval 根本不准确。那么最好的方法是什么?

我将 Ping 函数替换为另一个计算前一个数据包时间戳和 now() 之间差异的函数;但是它根本不准确。

如果对所描述的问题有任何其他解决方案,请提出建议。

【问题讨论】:

    标签: javascript ajax time


    【解决方案1】:

    您为什么不听文档的“onunload”事件并发送一条消息,以便了解用户何时离开您的页面。考虑一下;当用户开始填写您的服务器时,您发送一条消息,当他/她离开您的页面时,您发送另一条消息并测量这些消息之间的时间以总结总时间

    【讨论】:

      【解决方案2】:

      我想 setTimeout 和 setInterval 的大多数实现都设置为等待至少您指定的时间量。如果您想准确了解浏览器打开的时间,请使用 javascript 的日期函数在客户端计算,然后发送到服务器。

      【讨论】:

        【解决方案3】:

        如果您想每 5 秒向服务器发送一次请求,您可以在从客户端发送到服务器的请求中发送当前时间(使用 new Date().getTime())。

        在数据库中保存第一个请求的发送时间。这是用户开始调查的时间。

        当每个后续数据包到达时,减去发送第一个请求的时间,即可得出用户迄今为止花费在调查上的总时间。当用户单击按钮完成调查时,您可以发送最终请求,指示调查已完成。

        您可能还想发送有关文档模糊和焦点事件的请求。这些事件跟踪用户何时离开并返回您的页面而不关闭页面。

        【讨论】:

        • 每 5 秒发送一次 ping。对于第一个数据包,我们存储初始时间,然后根据时间差更新时间。如果时间差大于 20 秒,则意味着用户已关闭窗口,然后恢复测试(假设 10 天后),因此我们添加标准 5 秒,否则我们添加实际差异
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-17
        • 1970-01-01
        相关资源
        最近更新 更多