懶加載:懶加載即延遲秒梳,對于圖片過多的頁面,為了加快頁面加載速度滋迈,我們需要將頁面內(nèi)未出現(xiàn)在可視區(qū)域內(nèi)的圖片先不做加載, 等到滾動到可視區(qū)域后再去加載蠕蚜。我們先不給<img>設(shè)置src,把圖片真正的URL放在另一個屬性data-src中悔橄,在需要的時候也就是圖片進(jìn)入可視區(qū)域的之前靶累,將URL取出放到src中。注:手機(jī)會自動做懶加載
預(yù)加載:提前加載圖片癣疟,當(dāng)用戶需要查看時可直接從本地緩存中渲染挣柬。? 預(yù)加載可以說是犧牲服務(wù)器前端性能,換取更好的用戶體驗(yàn)睛挚,這樣可以使用戶的操作得到最快的反映邪蛔。
懶加載和預(yù)加載的區(qū)別:兩種技術(shù)的行為是相反的,一個是提前加載竞川,一個是延遲加載或者不加載店溢。懶加載對于服務(wù)器來說是有好的,可以緩解一定的壓力委乌。而預(yù)加載則相反床牧,會增加服務(wù)器的負(fù)擔(dān)。
懶加載具體實(shí)現(xiàn)方式:
1.第一種是純粹的延遲加載遭贸,使用setTimeOut或setInterval進(jìn)行加載延遲.
2.第二種是條件加載戈咳,符合某些條件,或觸發(fā)了某些事件才開始異步下載壕吹。
3.第三種是可視區(qū)加載著蛙,即僅加載用戶可以看到的區(qū)域,這個主要由監(jiān)控滾動條來實(shí)現(xiàn)耳贬,一般會在距用戶看到某圖片前一定距離遍
開始加載踏堡,這樣能保證用戶拉下時正好能看到圖片。
預(yù)加載具體實(shí)現(xiàn)方式:
實(shí)現(xiàn)預(yù)載的方法非常多咒劲,比如:用CSS和JavaScript實(shí)現(xiàn)預(yù)加載顷蟆;僅使用JavaScript實(shí)現(xiàn)預(yù)加載;使用Ajax實(shí)現(xiàn)預(yù)加載腐魂。
常用的是new Image();設(shè)置其src來實(shí)現(xiàn)預(yù)載帐偎,再使用onload方法回調(diào)預(yù)載完成事件。只要瀏覽器把圖片下載到本地蛔屹,同樣的src就會
使用緩存削樊,這是最基本也是最實(shí)用的預(yù)載方法。當(dāng)Image下載完圖片頭后兔毒,會得到寬和高漫贞,因此可以在預(yù)載前得到圖片的大小(方法
是用記時器輪循寬高變化。