Javascript 重定向时未找到页面错误

Javascript 重定向时未找到页面错误,javascript,redirect,Javascript,Redirect,我的页面标题标签中有以下代码: <script type="text/javascript"> var startime = (new Date()).getTime(); window.onload = function() { record_visit('ol'); setInterval("record_visit('update')", 300000); } window.onbeforeunload = function(){ reco

我的页面标题标签中有以下代码:

<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);
}
因为我每天有大约6k的访问者,所以这个错误在一分钟内会出现很多次


我在上面的代码中遗漏了什么吗?我相信不是count_visit.php有问题。

您必须对
url
变量进行url编码
encodeURIComponent(url)

请不要将字符串传递给
setInterval()
setTimeout()
。这样做与使用
eval()
一样糟糕,而且在使用变量时会导致代码无法读取,甚至可能不安全,因为您需要将变量插入字符串中,而不是传递实际的变量。正确的解决方案是
setInterval(function(){/*您的代码*)},毫秒)。这同样适用于
setTimeout()
。如果您只想在没有任何参数的情况下调用单个函数,还可以直接传递函数名:
setInterval(someFunction,毫秒)(请注意,函数名后面没有
()
)谢谢您的评论。但我不能理解你的意思。我对javascript相当陌生,如果您能给我一些上面修改过的代码,我愿意理解。只需将您的setInterval行替换为:
setInterval(function(){record_visit('update');},300000)错误似乎仍在继续。但我还得再等几个小时。可能它只是一个缓存,而页面目前还没有encodeuric组件。
page not found  02/27/2012 - 23:04  count_visit.php Anonymous (not verified)