2

我希望能够以最简单的方式记录一个人在我网站上的秒数。不需要谷歌分析或任何其他第三方来源。

php 脚本将创建与 mysql 的连接并更新相关值,

我在网上找到了一些脚本,但它似乎不起作用:


<script  src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"> </script>
<script>
   $(document).ready(function()
   {
       var refreshId = setInterval(function()
          $.load('timeonpage.php?wzx=<?php echo $t; ?>&ip=<?php echo $ip; ?>');
       }, 5000);
   );
</script>

谢谢你的帮助!

4

4 回答 4

3

存在语法错误,您缺少对函数的打开以及方法setInterval的关闭.ready

<script  src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"> </script>
<script>
$(document).ready(function(){
    var refreshId = setInterval(function(){ //SYNTAX ERROR HERE
        $.load('timeonpage.php?wzx=<?php echo $t; ?>&ip=<?php echo $ip; ?>');
    }, 5000);
}); // SYNTAX ERROR HERE
</script>

此外,我建议使用该$.get方法,因为 JQuery 中的 .load 通常用于将 HTML 加载到特定容器中:

var refreshId = setInterval(function(){
    $.get('timeonpage.php',{wzx:<?php echo $t?>,ip:<?php echo $ip?>});
},5000);
于 2012-11-26T19:36:03.530 回答
2
<script  src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"> </script>
<script>
$(document).ready(function()
{
 var refreshId = setInterval(function(){ //ANOTHER ERROR
    $.load('timeonpage.php?wzx=<?php echo $t; ?>&ip=<?php echo $ip; ?>');
 }, 5000);
}); //ERROR ON THIS LINE
</script>

好吧,您在准备关闭文档时缺少一个“}”。试试看,可能很简单,如果不是,请报告,然后再看看:)

另外:如果您考虑使用第 3 方服务,请查看GoSquared,那里非常棒的网站 :)

编辑: setInterval 行上的另一个错误:)

于 2012-11-26T19:35:48.550 回答
0

onLoad 调用 Ajax 脚本将页面和您想要的任何其他数据保存到数据库然后返回您存储在变量中的唯一 ID 可能会更有效。在 onbeforeunload 事件中,您可以使用唯一 ID 再次调用数据库。就我的两分钱...

于 2012-11-26T19:45:09.597 回答
0

使用您当前的方法,如果用户只是让浏览器窗口保持打开状态,那么他们一天内的所有 86,400 秒都可能被计为在线。

就个人而言,我的网站设置为每次用户实际加载页面时,他们的“最后加载页面”时间都会更新。然后,cron每分钟运行一个脚本并检查哪些用户在最后一分钟加载了页面。把这些加起来可以让我合理地确定每个用户在网上花费了多少时间。

此外,这会减少服务器上的负载 - 如果您的站点上有超过 50 个左右的用户,您的解决方案可能会杀死它。

于 2012-11-26T19:38:58.060 回答