zoukankan      html  css  js  c++  java
  • 浏览器地址栏背后的logic

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

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

          2、浏览器开始解析

          3、发现link,发送请求载入css文件

          4、浏览器渲染页面

          5、发现图片,发送请求载入图片,并重新渲染

          6、发送请求js文件,阻塞渲染。如果js对dom进行了操作,则会进行rerender

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

          首次载入页面:

          1-6 : 同上

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

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

          再次载入页面:

          1:发送请求

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

          3:解析页面

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

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

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

  • 相关阅读:
    [LeetCode]Add Two Numbers
    [LeetCode]Longest SubString Without Repeating Characters
    [LeetCode]Median of Two Sorted Arrays
    [LeetCode]Two Sum
    动态规划
    [shell编程]一个简单的脚本
    一些linux的问题
    核稀疏表示分类(KSRC)
    conda 按照指定源下载python包
    python 保留两位小数
  • 原文地址:https://www.cnblogs.com/jinbiao/p/3739273.html
Copyright © 2011-2022 走看看