Javascript - 每隔X秒运行一个php文件

时间:2012-11-26 19:29:09

标签: php javascript jquery

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

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 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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>

在准备好文件结束时,你错过了一个'}'。尝试一下,可能是这么简单的事情,如果不是,请回报并再看看它:)

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

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

答案 2 :(得分:0)

使用您当前的方法,如果用户只是将浏览器窗口保持打开状态,则可能会在一天内计算所有86,400秒的在线用户。

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

此外,这会减少服务器上的负载 - 如果您的网站上有超过50个用户,那么您的解决方案可能会终止它。

答案 3 :(得分:0)

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