php - Google Chrome 无需主动请求即可刷新

标签 php javascript html google-chrome

我遇到了无法解决的问题,需要帮助。

我采用安全代码来防止http刷新,它监视客户端是否请求太多http响应并防止它导致服务器宕机。

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

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

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

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

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

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

什么原因导致此问题,如何解决?

最佳答案

好吧,这很奇怪,因为它似乎是由 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 运行页面它显示了一个错误编码的字符,可能就是原因。

关于php - Google Chrome 无需主动请求即可刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13307363/

相关文章:

javascript - jQuery slideUp/Down 淡入/淡出不对称

html - 如何使这个 youtube 视频响应?

php - Phake框架: how to clone objects on captureAll?

php - 从 mysql 数据库填充下拉列表并且不重复值

php - 在 HTML5 中拖放多个文件?

javascript - 将 arrayBuffer 编码为 Base64 的正确方法,反之亦然

php - 如何创建消息数据的层次结构?

javascript - 使用 Node 和 Meteor 将 PDF 转换为图像 - 如何将缓冲区作为输入文件传递?

javascript - 使用 future 日期的小时、分钟和秒创建计时器倒计时

css - Fancybox 加载时从父窗口移除滚动条