2016-01-21 25 views
1

有人可以用我的脚本Ajax帮助我吗?我想算访问者在我的网站上花费的时间和变量发送到PHP页面:使用AJAX计算访问者在我的网站上花费的时间

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script> 
var start; 

$(document).ready(function() { 
start = Date.getTime(); 

$(window).unload(function() { 
    end = Date.getTime(); 
    $.ajax({ 
    url: 'timer.php', 
    type:'POST', 
    async: false, 
    data: { 
      'timeSpent': end - start, 
      x:'hello' 
      } 
    }) 
}); 
} 

和timer.php我把:

+0

了参考http://stackoverflow.com/questions/4667068/how-to-measure-a-time-spent-on-a-page – Dhara

回答

1

看来你输入了错误的类型ATTR:类型= 'POST' 的类型应该为: 'POST'

编辑:在仔细看(而且,在你选择的DevTool检查),更出现..

1)启动= Date.getTime ();不会为你工作。首先将一个新的Date()对象分配给一个startDate变量,然后将其getTime()返回赋给变量start 您应该对您的最终变量值做同样的处理,您最好通过调用var end ,就像你在开始时一样。并非所有的浏览器对此都是严格的,但它会为您的代码/编码一致性创造奇迹。

2)窗口卸载事件侦听器块不必是文档准备好听众,这也似乎你忽略了正确的关闭中..

那么试试这个:

var start, end, timeSpent; 

$(document).ready(function() { 
    var dStart = new Date(); 
    start = dStart.getTime(); 
}); 

$(window).unload(function() { 
    var dEnd = new Date(); 
    end = dEnd.getTime(); 
    timeSpent = end - start; 
    $.ajax({ 
     url: 'timer.php', 
     type: 'POST', 
     async: false, 
     data: { 
      timeSpent: timeSpent, 
      x:   'hello' 
     }, 
     success: function(){ 
      console.log('yay'); 
     } 
    }); 
}); 
+0

我修正了它,但仍然没有工作 –

+0

然后,我的朋友,你必须是更具体的问题,你遇到了什么问题,因为这个解决方案在我的最终工作正常。我应该已经设置了一个codepen,但是看到你花了多少时间和精力去问这个问题,我觉得我已经很久了。 – Stacky

相关问题