0
我在我的页面头部标签下面的代码:页找不到错误的重定向
<script type="text/javascript">
var startime = (new Date()).getTime();
window.onload = function()
{
record_visit('ol');
setInterval("record_visit('update')", 300000);
}
window.onbeforeunload = function(){ record_visit('obul'); } //obul = onbeforeunload
function record_visit(value) {
var x = (window.ActiveXObject) ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest();
var url='<?php echo "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; ?>';
x.open("GET", "/sc/count_visit.php?t=" + (((new Date()).getTime() - startime)/1000)+"&type="+value+"&url="+url, false);
x.send(null);
}
它的伟大工程,但在我的下最新的日志信息的Drupal站点,我收到一个错误:
page not found 02/27/2012 - 23:04 count_visit.php Anonymous (not verified)
因为我每天约有6k位访问者,在一分钟内错误就会出现很多次。
我错过了上面的代码?我认为这不是count_visit.php有问题。
请不要将字符串传递给'setInterval()'或'setTimeout()'。这样做与使用'eval()'一样糟糕,并且只要使用变量,就会导致不可读和可能不安全的代码,因为您需要将它们插入到字符串中,而不是传递实际变量。正确的解决方案是'setInterval(function(){/ * your code *)},msecs);'。 'setTimeout()'同样适用。如果你只想调用一个没有任何参数的函数,你也可以直接传递函数名:'setInterval(someFunction,msecs);'(注意函数名后面有** no **'()') – ThiefMaster 2012-02-27 15:16:14
感谢您的意见。但我无法明白你的观点。我相当新的JavaScript,并愿意明白,如果你可以给我一些修改后的代码。 – jaypabs 2012-02-27 15:20:55
只需用setInterval(function(){record_visit('update');},300000);' – ThiefMaster 2012-02-27 15:22:10