我正在建立一个网络项目,很快将在测试阶段发布。我需要记录用户在网页上执行的每项活动,如:
我需要捕获这些事件及其相对发生时间。理想情况下,用户会话的可播放视频。我研究过,但是我得到的解决方案只允许捕获点击事件,没有相关的时间信息。
我觉得,记录用户交互应该不是很困难,并且使用这样的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]
}
]
答案 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这个。否则,您将记录大量数据,并且它会对您的网站造成沉重负担。