繁体   English   中英

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

[英]Javascript - run a php file every X seconds

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

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>

谢谢你的帮助!

语法错误,您缺少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);
<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行上的另一个错误:)

使用您当前的方法,如果用户仅打开浏览器窗口,那么一天之内可能会被视为整个86,400秒在线。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM