浏览器地址栏背后的logic

   曾经有面试题是这样的:"描述在浏览器的地址栏中输入:http://www.baidu.com 后发生了什么?"。css

      一、服务端返回baidu页面资源,浏览器载入htmlhtml

      二、浏览器开始解析面试

      三、发现link,发送请求载入css文件浏览器

      四、浏览器渲染页面缓存

      五、发现图片,发送请求载入图片,并从新渲染服务器

      六、发送请求js文件,阻塞渲染。若是js对dom进行了操做,则会进行rerenderdom

      对于支持离线存储的页面,浏览器和服务器的交互又是如何呢?spa

      首次载入页面:htm

      1-6 : 同上图片

       7:请求页面中须要缓存的页面和数据,就算在以前的步骤中已经请求过(这是个耗能的地方)

       8:服务器返回全部请求文件,浏览器进行本地存储

      再次载入页面:

      1:发送请求

      2:使用本地存储的离线文件

      3:解析页面

      4:请求服务端的manifest文件,判断是否有改变,返回304则表示没有改变进入步骤5,不然进入步骤6

      5:进入首次载入页面的7-8

      6:使用本地存储,不从新请求

相关文章
相关标签/搜索