知乎網站是如何做到無緩存的情況下,每個頁面響應速度這麼快的呢?

知乎網站的響應頭如下:

在不允許緩存的情況下,如何做到每個頁面立即響應呢?


不是你想像中那樣子的哈,沒有使用cache的是知乎的首頁,這個html只是個架子,裡面包含了大量的css、js、javascript、圖片等靜態資源,那些資源是有使用cache的。

例如這個,雖然沒有使用瀏覽器本地cache,但是使用了服務端的緩存。服務端返回304 Not Modified的意思就是,服務端資源沒有修改過,讓瀏覽器使用本地的css資源。

這個圖片,使用的就是瀏覽器本地cache,並沒有發送請求到服務端,這些資源是有使用本地緩存機制的。

總的來說,是知乎一些實時性要求高的部分,沒有使用cache,大部分還是使用了類似304或者瀏覽器本地cache的緩存機制。為什麼有些地方不使用本地緩存?

本地緩存雖然帶來了良好的用戶體驗,同時不耗費網路通信時間等優點,但是,它最大的缺點在於開發人員發布了新的內容,但是,用戶瀏覽器本地仍然是舊的,這會導致一些體驗的問題。

因此,某些關鍵的頁面不使用cache,也是為了比較好地控制這個問題。


響應速度快!? 我一天有多少次因為load不出內容而放棄閱讀你造嗎?!

還有每次回到首頁就開啟兩頁這個是什麼意思?! 已經對知乎積怨已久啊~《 什麼時候能改觀?


不覺得快,每個問答都要刷新1到2秒,甚至3、4秒,即使是打開過的有大量圖片的,退出問答頁後,又得刷新那麼久


推薦閱讀:

帝都找個前端的工作為何這麼難?
跨平台的響應式設計日後會得到普及嗎?
初級前端面試需要帶什麼作品?
怎樣開始學習前端知識?
一個網站的 UI 好看與否是否只能是站長的孤芳自賞?

TAG:知乎 | 網頁設計 | 前端開發 | 伺服器 | 網站 |