使用Javascript记录网页上的所有用户交互

时间:2015-11-12 09:06:59

标签: javascript html

我正在建立一个网络项目,很快将在测试阶段发布。我需要记录用户在网页上执行的每项活动,如:

  • Page scrolls
  • 点击内部页面,然后在那里关注。
  • 文字输入

我需要捕获这些事件及其相对发生时间。理想情况下,用户会话的可播放视频。我研究过,但是我得到的解决方案只允许捕获点击事件,没有相关的时间信息。

我觉得,记录用户交互应该不是很困难,并且使用这样的json数据的解析器应该能够重放视频:

[
    {
        "time": 0,
        "page": "/page1",
        "event": "new_page",
        "locXY": [50,23]
    },
    {
        "time": 3.45,
        "page": "/page1",
        "event": "scroll",
        "locXY": [50,400]
    },
    {
        "time": 0,
        "page": "/page2",
        "event": "click",
        "locXY": [70,450]
    }
]

1 个答案:

答案 0 :(得分:0)

在每次点击活动中,您都应该请求Date.now来实现您的时间戳。然后你应该将它保存在另一个叫var的旧时间中。下次用户点击时,您可以执行curTime - prevTime以获得时间差异。您可以在初始时间展开它。这样,您可以通过执行curTime - initTime来查看自第一次点击以来的时间。

在clickListeners之外定义prevTime和initTime。

简而言之:

//first click:
var curTime = Date.now;
prevTime = curTime;
initTime = curTime;

//Second click:
var curTime = Date.now;
var deltaTime = prevTime - curTime;
var timeSinceInit = initTime - curTime;

// define the new previous timestamp.
prevTime = curTime;

// then parse the data
{
    "time": deltaTime,
    "timeStamp": timeSinceInit,
    "page": "/page1",
    "event": "click",
    "locXY": [mouseX,mouseY]
}

编辑:

刚来找我,你应该throttle这个。否则,您将记录大量数据,并且它会对您的网站造成沉重负担。