gpt4 book ai didi

网页:系统会记录用户显示每个页面的时长

转载 作者:行者123 更新时间:2023-12-04 17:05:07 27 4
gpt4 key购买 nike

我有这个要求:

The system will record the length of time the user displayed each page.



虽然在富客户端应用程序中微不足道,但我不知道人们通常如何跟踪它。

编辑:John Hartsock

我一直对此感到好奇,在我看来,这可以通过使用 document.onunload 事件来准确捕获所有页面的星号和停止时间。基本上只要用户停留在您的网站上,您将始终能够获得除最后一个页面之外的每个页面的开始和停止时间。这是场景。
  • 用户进入您的网站。 - 我有一个
    首页开始时间
  • 用户转到您网站的第 2 页 -- 我有主页的停止时间和第 2 页的开始时间
  • 用户退出您的网站。 -- 如何获得第2页的最后停留时间

  • 问题变成了是否可以跟踪用户何时关闭窗口或离开您的网站?是否可以使用 onunload 事件?如果不是,那么还有哪些其他可能性?显然 AJAX 将是一种途径,但还有哪些其他途径?

    最佳答案

    我认为您无法捕捉到每一个页面浏览,但我认为您可能能够捕获足够的信息来分析网站使用情况。

    创建一个包含以下列的数据库表:网页名称、用户名、开始时间和结束时间。

    在页面加载时,将一条记录插入包含前三个字段数据的表中。返回该记录的 ID 以备将来使用。

    在任何导航中,使用之前返回的 ID 更新导航事件处理程序中的记录。

    与同时具有开始时间和结束时间的记录相比,您最终会得到更多带有开始时间的记录。但是,您可以从这个简单的数据中进行这些分析:

  • 您可以通过计算开始时间来计算每个页面的访问次数。
  • 您可以计算用户为具有开始时间和结束时间的记录显示每个页面的时间长度。
  • 如果您有关于用户的其他信息,例如角色或位置,则可以对页面查看进行更多分析。例如,如果您了解角色,则可以查看哪些角色使用的页面最多。

  • 由于某些页面比其他页面更频繁地被放弃,您的数据可能会被扭曲。

    但是,您当然可以 try catch 这些数据并查看它的合理性。有时,在现实世界中,我们不得不使用不完美的信息来应对。但这可能就足够了。

    编辑:这些方法中的任何一种都可能满足您的需求。

    1) 这是 的 HTML 部分Ajax 解决方案 .它来自 this page ,其中包含用于在文本文件中记录信息的 PHP 代码——如果您愿意,可以很容易地更改为写入数据库。
     <html>
    <head>
    <title>Duration Logging Demo</title>
    <script type=”text/javascript”>
    var oRequest;
    var tstart = new Date();

    // ooooo, ajax. ooooooo …
    if(window.XMLHttpRequest)
    oRequest = new XMLHttpRequest();
    else if(window.ActiveXObject)
    oRequest = new ActiveXObject(“Microsoft.XMLHTTP”);

    function sendAReq(sendStr)
    // a generic function to send away any data to the server
    // specifically ‘logtimefile.php’ in this case
    {
    oRequest.open(“POST”, “logtimefile.php”, true); //this is where the stuff is going
    oRequest.setRequestHeader(“Content-Type”, “application/x-www-form-urlencoded”);
    oRequest.send(sendStr);
    }

    function calcTime()
    {
    var tend = new Date();
    var totTime = (tend.getTime() – tstart.getTime())/1000;
    msg = “[URL:" location.href "] Time Spent: ” totTime ” seconds”;
    sendAReq(‘tmsg=’ msg);
    }
    </script>
    </head>

    <body onbeforeunload=”javascript:calcTime();”>
    Hi, navigate away from this page or Refresh this page to find the time you spent seeing
    this page in a log file in the server.
    </body>
    </html>

    2) Another fellow建议创建一个 计时器 Page_Load .在该点写入初始数据库记录。然后,在计时器的 Elapsed 上事件,更新该记录。在 onbeforeunload 做最后的更新.然后,如果由于某种原因你错过了最后一次 onbeforeunload事件,至少您将记录用户在页面上花费的大部分时间(取决于计时器 Interval)。当然,如果你每秒更新一次,并且有成百上千的并发用户,这种解决方案将是相对资源密集型的。因此,您可以配置为应用程序打开和关闭此功能。

    关于网页:系统会记录用户显示每个页面的时长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3893366/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com