【问题标题】: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');

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

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

【问题讨论】:

    标签: php html utf-8 header content-type


    【解决方案1】:

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

    【讨论】:

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

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

    【讨论】:

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

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

    【讨论】:

    • 感谢 Netrox,我同意。不过这对我来说不是问题,所以我更喜欢速度提高 30%,而不是照顾人们保存我的页面!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    • 2021-05-13
    • 2018-11-30
    相关资源
    最近更新 更多