為什麼很多網頁、圖片、視頻,都在我失去耐心、選擇退出的那一瞬間,剛好載入出來?


本來懶的說了,但評論區酣戰不休,在這裡補充一下,這個答案用繁體,只有一個原因:我pad上用繁體,搜番號比較方便,然後順手答知乎就懶得切語言了。大家把關注點集中在問題本身上,不要把關注點搞錯了。

==-=

咳咳咳,這並不是你的錯覺,這個情況實際上是存在的。

一個網頁的構成往往非常複雜,包括CSS樣式、HTML標籤、JS等,甚至圖片視頻音頻等多媒體內容。

這其中有的東西會阻塞式加載,最常見的現象是,在加載CSS的過程中始終白屏,瀏覽器就會一直等,等這個請求加載完了或者超時了,才刷一下顯示出來。這中間的過程,就是讓你抓狂的白屏加載時間。

而當你關掉頁面,或者按下ESC鍵的時候,瀏覽器通常會給這個頁面上還未結束的加載請求觸發一個超時事件,說這個東西我不要了,因為用戶要走了。這時頁面恍然大悟,把半生的頁面渲染出來給用戶看到,然而並沒有什麼卵用,用戶已經走遠了,只是在眼角餘光裡留下一個遺憾。

這個過程大概就像,你去飯店點菜,大廚說,我們的糖用光了,得出去買,然後負責採購的伙計半路堵車,要是這個伙計30秒之後還沒到達戰場,我就開煮,否則就會等。然後你在第20秒的時候,說我不要了,什麼狗屁服務,退錢!這時飯店老闆急了,說大廚你他媽的別等了,直接開煮吧,也就是說買糖請求提前超時終止。半秒鐘之後大廚端著半生的飯菜追出來,你已經走了。

多媒體文件由於體積相對巨大,更是加載等待的重災區,現代瀏覽器一般會在加載過程中嘗試顯示/播放多媒體文件,通常的做法是有一個buffer,當載入的數據填滿buffer時就播放。

同樣的,你久等一個buffer不得,怒關頁面,這時瀏覽器終止了加載請求,把半個buffer拿出來渲染了。

嗯,總結就是,瀏覽器總是在等,時機不成熟就不幹活,但你可以催熟嘛哈哈。

你在瀏覽網頁的過程中,被一個傻逼請求卡住的時候,不妨按一下ESC鍵,或者點一下停止加載按鈕。假如被卡住的只是無關緊要的部分,那麼網頁上大部分的內容你還是可以體驗到;但也有可能你只能吃到半生不熟的飯菜,這跟加載的進度有關。


比如說,網頁只載入了50%的時候,它還沒有進行渲染,你覺得卡,於是關了。而你關的時候,瀏覽器就中斷載入了,這時候它會認為所有數據已經載入完成了,於是就把這50%的內容渲染了出來,但是緊接著瀏覽器也就關閉了。

當你載入一個頁面很久都不出現的時候可以試試按下ESC,它會中斷載入並把已經載入好的內容顯示出來。

(不是專業人士,用詞可能不準確,但道理是對的)


推薦閱讀:

怎樣看待「信息不對稱」?
拉卡拉的個人端的設備,消費者購買的理由是什麼?
如果真有美劇《疑犯追蹤》裡面那樣的「machine」,人們能接受嗎?
怎樣有效的把線下客流轉化到線上呢?

TAG:互聯網 | 用戶體驗 | 計算機 | 計算機網路 |