【问题标题】:Measure user activity time on webpage测量用户在网页上的活动时间
【发布时间】:2020-02-21 15:33:57
【问题描述】:

对于 newrelic 自定义监控,测量用户在页面上花费的时间(以秒为单位)以记录时间和超时。我有创建用户会话或访问页面时的时间戳,但是需要仅使用 javascript 来确定会话结束的时间。

代码尝试

window.onbeforeunload = function(event) {       
    doSomething();
    //event.returnValue = "Is this working";
    };

    function doSomething(){
            //const t = new Date();
            //const ctime = t.getTime();
            //Test
            newrelic.setCustomAttribute('ctime', "sal");
            }

【问题讨论】:

  • “超时”是指用户关闭页面或导航到其他页面的时间吗?
  • 既..关闭页面以及失焦。

标签: javascript session newrelic


【解决方案1】:

您可以进行轮询,定期轮询可以让您了解活动或丢失会话的状态,因此您可以捕获相同的时间戳。

同样使用 javascript 的 unload 方法进行 ajax 调用可以帮助您:

$(window).unload(function() {
  var end = new Date();
  $.ajax({ 
    url: "log.php",
    data: {'timeSpent': end - start},
    async: false
  })

});

【讨论】:

    【解决方案2】:

    您可以使用“onunload”或“onbeforeunload”事件:

    <body onbeforeunload="return onBeforeUnload()">
    

    onBeforeUnload() 是:

    <script>
    
        function onBeforeUnload() {
          // log the out time
        }
    
    </script>
    

    【讨论】:

    • 此事件仅允许您更改和设置自定义文本,而不是更多。我读到有些浏览器甚至不允许使用您的自定义文本!我必须在我设置自定义属性的地方调用一个函数。附上我试过的代码。
    猜你喜欢
    • 2018-11-29
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 2010-12-15
    相关资源
    最近更新 更多