瀏覽器地址欄背後的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:使用本地存儲,不從新請求

相關文章
相關標籤/搜索