0

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

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

如果我们在页面上进行过多的刷新,客户端会获得标题为“正在加载...”的空白页面 2 秒,然后正常页面加载。

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

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

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

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

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

是什么原因造成的,我该如何解决?

4

2 回答 2

3

好的,这很奇怪,因为它似乎是由 Chrome 的自动翻译功能引起的。我Chrome 24.0.1312.5 dev-m在英文 Windows 7 上运行,当我加载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 不刷新页面 - 请参阅为什么 Chrome 会错误地确定页面使用不同的语言并提供翻译?或修复某些字符的编码问题,这使 Chrome 认为页面使用了错误的语言。如果您通过W3C 验证器运行该页面,它会显示一个错误编码的字符,这可能是原因。

于 2012-11-09T12:25:53.147 回答
1

您是否尝试过任何替代方法"meta http-equiv='refresh'"

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

header("Location: index.php");
die();
于 2012-11-09T11:50:10.680 回答