圖片懶載入大白話

前端開膛手發表於2019-03-08

1,圖片體積大,佔用資源,影響使用者體驗,所以要按需載入,滾動到哪裡,就載入哪裡的圖片

2,圖片的載入是通過src屬性的,所以核心原理就是更改src

3,步驟一,將img的src指向一個預設圖片(體積小的空白圖,或者高清圖片的壓縮版),注意src不可為空,否則瀏覽器依舊會向服務端發出請求

4,img上通過data-src屬性,繫結真正的src指向

5,根據scrollTop,offsetTop,scrollLeft,offsetLeft等屬性,來判斷滾動位置。關於這些屬性,可參考https://i.jakeyu.top/2016/09/04/scrollTop-offsetTop-scrollLeft-offsetLeft/

6,如果圖片出現在可見區域,則將預設src替換成真實src

7,為了提升使用者體驗,可參考Img物件的兩個屬性:complete只是HTMLImageElement物件的一個屬性,可以判斷圖片載入完成,不管圖片是不是有快取;而onload則是這個Image物件的load事件回撥,當圖片載入完成後執行onload繫結的函式。

8,為了進一步提升效能和使用者體驗,防止滾動時無限監聽,可新增節流函式進行效能優化。



相關文章