【问题标题】:how a html page is rendered in sequence?一个html页面是如何按顺序呈现的?
【发布时间】:2011-05-27 07:11:33
【问题描述】:

另外,我知道 css 和图像文件可以并行下载。但是可以并行下载javascript文件吗?谢谢。

【问题讨论】:

  • Firefox 并行下载。
  • 我真的不知道你在这里问什么。也许你应该试着解释你的问题是什么。
  • 嗨安德鲁,我只是想知道 html 页面呈现过程。谢谢。

标签: javascript html browser web


【解决方案1】:

当 HTML 解析器看到 script 标记时,除非您使用几个特殊属性,否则它会突然停止,下载 JavaScript 文件,然后将内容交给 JavaScript 解释器。因此,script 文件不能彼此并行下载,也不能与主 HTML 并行下载……除非您使用 defer or async 属性并且浏览器支持它们。详情见this other answer here on StackOverflow。

请注意,即使您有多个可以并行下载的资源,也不能保证它们会。浏览器(和服务器)限制了相同的两个端点之间的同时连接数。 (使用现代浏览器the limit is usually at least four——从两个开始——但浏览器可能会在拨号连接和移动设备上拨号;当然,它们完全免费,只使用一个连接,它是特定于实现的)。

【讨论】:

  • 我喜欢这个答案。然而,并不是“不能并行下载脚本文件”(浏览器可以乐观地执行此任务;执行脚本的文档修改存在一些问题等 - 因此只是“乐观”),而是“脚本必须按顺序执行”(并与文档一起执行)。
  • @pst:一个非常的好点。浏览器可以做到这一点。据我所知,没有,但我可能只是不知道具体的优化。即使目前没有人这样做,但你是绝对正确的。
【解决方案2】:

脚本在现代浏览器和 IE8 中并行加载。 Firefox 和 Safari 将同时下载多达六个脚本。然而,IE8 似乎没有设置限制——我的测试显示一次加载多达 18 个脚本。

但是,无论是一个脚本还是六个,其他所有内容都被阻止。所以浏览器不会加载一个脚本和一个样式表。

您可以通过查看 Net 选项卡中的 Firebug 来很好地了解流程。您在右侧看到的那些条形图称为瀑布图,可以合理准确地表示加载内容的时间以及加载时间。

您可以在此演示文稿中了解有关页面加载的更多信息:Optimize Your Website to Load Faster 有关资源加载的内容从幻灯片 33 开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-15
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多