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 内容类型元标记会减慢页面加载速度,为啥?的主要内容,如果未能解决你的问题,请参考以下文章