![](/img/trans.png)
[英]Automatically run a PHP script every X seconds without refreshing the page
[英]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.