谷歌Chrome刷新而没有被要求提供

时间:2012-11-09 11:34:19

标签: php javascript html google-chrome

我有问题没有解决方案,需要帮助。

我采取安全代码来防止http刷新,它监视客户端是否请求过多的http响应并阻止它关闭服务器。

如果我们在页面上进行了过多的刷新,那么客户端将获得空白页面,其中包含“Loading ...”2秒钟,然后是正常的页面加载。

要使代码使用:“meta http-equiv =”刷新“”标记,并且由于某种原因确定的情况下页面仍然不停地刷新。

我搜索了一些解决方案,发现这是来自Chrome的“inssue”,显然没有解决方案。

我尝试使用javascript验证客户端是否使用Chrome,如果Chrome不使用元标记刷新,请使用javascript进行刷新。

无论如何,Chrome仍然表现出这种行为,这让我疯狂。

如果您想尝试,可以访问www.sport4u.com.br访问页面上的任何产品或链接,当您获得空白屏幕时按F5多次(10秒),加载标题按“历史记录返回”按钮,等待。

导致这种情况的原因,我该如何解决?

2 个答案:

答案 0 :(得分:3)

好的,这很奇怪,因为它似乎是由Chrome的自动翻译功能引起的。我在英文Windows 7上运行Chrome 24.0.1312.5 dev-m,当我加载http://www.sport4u.com.br/时,页面每2秒自动重新加载一次。事实上,如果我查看页面源代码,我会得到以下内容:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />

<meta http-equiv="Content-Language" content="tr">
<script>
    window.setTimeout('window.location.reload(); ',2000);
</script>
<title>Loading...</title>
</head>


<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0" bgcolor="#fff">

立即您可以看到reload()代码。

Chrome还打开了页面顶部的自动翻译栏,因为它认为该页面是葡萄牙文并提供翻译。但是在第二次重新加载(2秒后)Chrome现在认为页面是土耳其语(因为这是上面代码中的语言)!这种情况持续很多次,直到最终Chrome停止。即使关闭顶部的翻译栏也不会停止重新加载。

如果我停用Chrome翻译设置(chrome:// settings / search#languages)并加载页面,则无法刷新,查看源会返回正确的页面。

我建议您指示Chrome不刷新页面 - 请参阅Why does Chrome incorrectly determine page is in a different language and offer to translate?或修复某些字符的编码问题,这会让Chrome认为该页面使用了错误的语言。如果您通过W3C validator运行该页面,则会显示错误编码的字符可能

答案 1 :(得分:1)

您是否尝试过"meta http-equiv='refresh'"的替代方案?

在加载任何内容以重定向之前,请先查看使用header();,因为该元标记已弃用。

header("Location: index.php");
die();