UTF-8 内容类型元标记会减慢页面加载速度,为啥?

Posted

技术标签:

【中文标题】UTF-8 内容类型元标记会减慢页面加载速度,为啥?【英文标题】:UTF-8 content type meta tag is slowing down the page loading, why?UTF-8 内容类型元标记会减慢页面加载速度,为什么? 【发布时间】:2011-04-19 16:24:48 【问题描述】:

我正在设置以下元标记来设置内容类型,这样做页面加载时间会增加大约 30%(使用 chrome 开发工具和 firefox firebug 时为 350 --> 500 毫秒)。注意:我将它放在标签内的第一件事,以防止重新呈现页面内容。此外,以 kb 为单位的页面大小基本相同,所以这不是问题。

meta http-equiv="Content-Type" content="text/html; charset=utf-8"

如果我不包含标签,字符将无法正确呈现。如果我删除它并按照下面将标题添加到我的 php 中,一切都会再次快速。

header('Content-Type: text/html; charset=utf-8');

所以我的第一个问题是,我真的需要元标记还是标题对于所有浏览器都足够?我听说我需要元标记以便表单正常工作,但似乎标题可能足够好。

我的第二个问题是,为什么这个标签会影响加载时间,这看起来简直太疯狂了?

【问题讨论】:

【参考方案1】:

这可能取决于您之后执行的代码。这本身不应该影响。 如果那是网页本身,则不需要执行 header() 函数,html 元标记就足够了。

【讨论】:

嗨 Flaab,感谢您的回复。我知道两者都可以,但这确实是一个效率和兼容性问题。似乎 header() 函数效率更高【参考方案2】:

标题将覆盖我相信的元标记。所以你应该使用标题,而不是元标记。元标记的问题是浏览器在看到元标记之前就开始解析 HTML。一旦遇到元标记,它现在就知道编码,所以它必须重新开始。这可以解释您所看到的延迟。

【讨论】:

感谢彼得的回复。是的,标头确实覆盖了元标记 (w3.org/International/questions/…),但是当元标记是第一个声明的东西时,它可能会导致这样的延迟似乎仍然很奇怪。我认为没有任何理由保留元标记,尽管很多人说要这样做(以防标题被剥离)。【参考方案3】:

不使用元标记可能会出现问题。一旦输出并保存在本地,它就不会知道正在使用哪种语言。通过在 HTML 元中设置它,它可以让浏览器知道使用哪种语言。否则,如果您使用亚洲字符,则会出现乱码。如果您只使用英语,那么这不是什么大问题。

【讨论】:

感谢 Netrox,我同意。不过这对我来说不是问题,所以我更喜欢速度提高 30%,而不是照顾人们保存我的页面!

以上是关于UTF-8 内容类型元标记会减慢页面加载速度,为啥?的主要内容,如果未能解决你的问题,请参考以下文章

减慢浏览器渲染速度

为啥有些列会减慢查询速度

oracle中加索引会不会加快更新的速度?有人说会减慢更新速度?谁知道为啥吗?

故意减慢 HTML/PHP 页面加载以进行测试

为啥这个脚本会随着输入量的增加而减慢每个项目的速度?

为啥 MYSQL 更高的 LIMIT 偏移量会减慢查询速度?