完成了若干个基于WEB的项目, 也了解了从前端的js,css,html到后端python/php等, 二者如何交互, 最终浏览器如何执行, 这些在心里也已经很明确了....基于相关的调研, 我的理解为, 对于一个URI请求, 浏览器会按照下面的请求和执行顺序进行:
一个线程对DOM进行下载(也就是html, 而不去管html中的外部资源)
另外一个线程会开始分析已经下载的...()是在DOM下载完成后执行
在实际的浏览器中, 一般遇到标签会自动block住其它线程的下载, 如firefox, 这也是为什么 在web开发中常常推荐将标签置于Firefox和chrome的请求分析
我们回过头来看下上面2个图中的请求响应图....Firefox
有如下特征:
首先下载html
html下载完成后, 从上到下依次下载外部文件(js, css,img)
js会block其它外部文件的下载
其它文件会并行下载
chrome
有如下特征