使用 CloudFlare 背后的 NodeJS 跟踪页面浏览时间

Track page view time using NodeJS behind CloudFlare

我想知道用户观看特定页面的时间(如 Google 分析)。

我想打开一个 xmlHttpRequest 到我的服务器并将超时设置为大约 30 分钟。 在服务端,监听请求端,在服务端记录。

客户端

$(function($.get('/checktime')))  // start tracking on page load

服务器端

app.use('/checktime',function(req){
    var start=new Date()
    req.on('end',log)
    req.on('disconnect',log)
    function log(){
        logToServer(new Date()-start) // Time the user spent on the page
    }

})

问题:

  1. 还有其他更好的方法来跟踪用户在页面上花费的时间吗?
  2. 在用户离开页面之前,NodeJS 服务器是否会终止连接?
  3. 该应用落后于 cloudflare。 cloudflare 有没有超时,所以连接会在用户离开页面之前结束?
  4. 使用 getpost 生成 XMLHttpRequest 有什么不同?

谢谢

我最近看到的实现打开了一个 WebSocket(回退到长轮询)并每隔几秒钟就向另一端的服务器发送数据。这也使您能够使用 javascript 收集更多数据并将其发送到日志服务器