4

很长的故事,但是我的网站有问题,在我的网站内的任何页面/链接导航之间都会有一个空白的白色页面闪烁。仅在 Firefox 中发生,并且仅在较新版本的 Firefox 中发生(例如,未出现在 3.6.x 版本中)。

在比较了来自两个不同服务器的响应标头之后,从另一个服务器提供服务的站点没有这个问题——我注意到它的响应标头中有这个:

Content-Type text/html; charset=UTF-8

我的正常服务器确实有问题,它的响应头中有这个:

Content-type text/html

所以,我将此行添加到我的 .htaccess 中,问题就消失了:

AddDefaultCharset UTF-8

我的问题:

  1. Content-Type 没有指定字符集是什么原因,这可能导致 Firefox 在我的网站页面之间闪烁(如 10 毫秒)总空白白屏?

  2. 既然我解决了问题,我的解决方法“ok”吗?它是安全的,还是很有可能破坏其他东西?

我的快速测试没有显示问题,但不知道它可能导致什么副作用,或者它解决我的页面闪烁问题的原因,这让我很困扰。

4

1 回答 1

3

我假设您的网站主要提供英文内容,并且由于 utf-8 与大多数英文字符编码兼容,我会说这种方法相当安全。如果没有,您需要对这些内容进行相应的更改。

顺便说一句,大多数 HTTP 服务器还有一个全局默认字符集配置,理论上比 .htaccess 设置更有效。在大多数由 PHP、Java 编写的 Web 应用程序中,无论是哪种语言,应用程序本身最好清楚地说明它正在使用哪种编码。

对于火狐刷机部分,根据我以往的浏览器开发经验,如果响应头中没有说明,浏览器需要自动检测你的编码。因此,如果最初假定的编码与检测到的不同,浏览器需要强制页面重排。只是一个粗略的猜测,出于实际原因,我认为 firefox 邮件列表应该是一个更好的去处。

于 2013-01-23T03:05:02.820 回答