千家信息网

HTML资源是怎么加载的

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下HTML资源是怎么加载的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!引入完成了若干个基于WEB的项目,
千家信息网最后更新 2026年11月02日HTML资源是怎么加载的

小编给大家分享一下HTML资源是怎么加载的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

引入

完成了若干个基于WEB的项目, 也了解了从前端的js,css,html到后端python/php等, 二者如何交互, 最终浏览器如何执行, 这些在心里也已经很明确了. 不过一个问题一直萦绕在心中,那就是:

一个html有若干个外部资源(js,css,flash,image等),这些请求是何时下载的,又是何时执行的?

不清楚,不明白, 所以也就不知道我写的js究竟何时执行的, 也就不知道为什么很多高性能的建议是要将js置于一个 html底端的之前.

如果你也不是很明确,请来和我一起学习吧.

具体分析

首先我们来看一个示例的html页面,如下:

                    

它有如下几种资源:

  1. 3个外部js文件,1个inline js代码

  2. 1个外部css文件, 1个inline css代码

  3. 1个image文件,及1个js请求的image

总共是6个http request.

在分析之前,我们来看看firefox对这个html请求的结果, 如下图:

我们再看看chrome(linux)对这个html的请求结果,如下图(图比较小,可以在新标签中打开):

我们先分析下,然后再去说明这2种请求结果的不同.

请求分析

首先说明下面这些描述主要是基于自己google, 咨询朋友和在 SO 和 IRC 上获得, 我并没有阅读相关的spec(当然我很想阅读,如果知道相关spec的朋友请留言谢谢), 不能保证其正确性和准确性,风险自担 :D.

基于相关的调研, 我的理解为, 对于一个URI请求, 浏览器会按照下面的请求和执行顺序进行:

  1. 一个线程对DOM进行下载(也就是html, 而不去管html中的外部资源)

  2. 另外一个线程会开始分析已经下载的DOM, 并开始下载其中的外部资源(如js, css, image等)

  3. 第三个线程(如果有的话)会去下载2正在下载的以外的外部资源

  4. 如果允许更多的连接, 更多的线程会继续下载其它资源

一个请求可以同时有多少个connection(线程), 取决于不同的浏览器, http1.1 标准中规定的是对于同一个server/proxy(也就是hostname) 不超过2个connection, 但是在实际的浏览器实现中, 具体如下:

Firefox 2: 2Firefox 3: 6Opera 9.26: 4Opera 9.5 beta: 4Safari 3.0.4 Mac/Windows: 4IE 7: 2IE 8: 6

所以请根据这个实际情况来思考上面的下载顺序.

然后我们看执行顺序(js的执行, css的应用等):

  1. 只要浏览器"看到了"了js代码,它就会执行

  2. 浏览器是从下到下,一行一行地执行

  3. 如果js代码位于一个函数或者对象中,则只有当函数或者对象被调用时才会执行

  4. 而所谓的direct code(不处于函数或者对象中的代码),则会从上到下顺序执行

  5. 当css文件下载完成时, 相应的样式也会应用到DOM上

  6. onload或者jquery的$(document).ready()是在DOM下载完成后执行

在实际的浏览器中, 一般遇到标签置于之前, 这样可以在大多数情况下都得到较好的性能.

对Firefox和chrome的请求分析

我们回过头来看下上面2个图中的请求响应图.

Firefox

有如下特征:

  1. 首先下载html

  2. html下载完成后, 从上到下依次下载外部文件(js, css,img)

  3. js会block其它外部文件的下载

  4. 其它文件会并行下载

chrome

有如下特征:

  1. 首先下载html

  2. 从上到下依次下载外部文件(js,css,img)

  3. 各个资源的下载顺序是并行的

你可能会奇怪如果js可以并行下载,那么可能位于DOM下面的代码会先执行, 首先可以肯定的是 即使下面的js先完成下载,也不会影响到整体的从上到下的执行顺序,浏览器会维护这种顺序的关系, chrome的这种方式也是未来浏览器的一种趋势, 而这也是为什么chrome能够更快的原因之一.

以上是"HTML资源是怎么加载的"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

浏览器 浏览 资源 文件 顺序 代码 线程 分析 标签 面的 函数 实际 对象 更多 篇文章 结果 不同 一行 也就是 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 哈尔滨大商圈互联网科技有限公司 中关村互联网科技集团 互联网科技资迅 狮子座互联网科技 融势互联网科技 互联网科技公司介绍 互联网科技股有哪些 金融科技和互联网金融 海南购全球互联网科技 华中科技有哪些互联网大佬 开启互联网科技时代小说 互联网5g黑科技有哪些 宜昌元轩互联网科技有限公司 民营互联网公司国防科技 东莞新华互联网科技学校 华夏恒生科技与互联网科技 保险科技服务互联网营销体系 深圳互联网科技的发展 银川新华互联网科技学校原画 平安好医生打造互联网科技医疗 上海喔噻互联网科技有限公司 湖北九亚互联网络科技有限公司 互联网科技公司税收优惠 贷财互联网科技 科技伦理 互联网公司 博兴的互联网电子科技公司 承德科技产业互联网发展 工业互联网展湾科技股份有限公司 易企秀互联网科技是做什么的 广州智享互联网科技
0