mysql 懶載入 懶載入和預載入實現解析

2021-10-18 11:32:20 字數 1602 閱讀 7188

1.懶載入

懶載入的要點如下:

1.進入可視區域之後請求資源;

2.對於電商等較多,頁面很長的業務場景很適用;

3.可以減少無效資源的載入;

4.併發載入的資源過多會阻塞js的載入,影響**的正常使用;

如何實現懶載入呢?要點就是html中img標籤src屬性為空,或者可以設定乙個載入中的友好提示,給乙個data屬性,裡面存放真實位址,在需要的時候,動態的將這個位址賦予src屬性。例如可以使用lazyload.js做到在距離xxpx的時候進行替換真實位址。

如下所示:

var viewheight = document.documentelement.clientheight // 可視區域的高度

function lazyload () {

// 獲取所有要進行懶載入的

var eles = document.queryselectorall('img[data-original][lazyload]')

array.prototype.foreach.call(eles, function (item, index) {

var rect

if (item.dataset.original === '')

return

rect = item.getboundingclientrect()

// 一進入可視區,動態載入

if (rect.bottom >= 0 && rect.top < viewheight) {

!function () {

var img = new image()

img.src = item.dataset.original

img.onload = function () {

item.src = img.src

item.removeattribute('data-original')

item.removeattribute('lazyload')

// 首屏要人為的呼叫,否則剛進入頁面不顯示

lazyload()

document.addeventlistener('scroll', lazyload)

2.預載入

預載入的核心要點如下:

1.等靜態資源在使用之前的提前請求;

2.資源後續使用時可以從快取中載入,提公升使用者體驗;

3.頁面展示的依賴關係維護(必需的資源載入完才可以展示頁面,防止白屏等);

實現預載入主要有三個方法:

1.html中img標籤最初設定為display:none;

2.js指令碼中使用image物件動態建立好;

3.使用xmlhttprequest物件可以更加精細的控制預載入過程,缺點是無法跨域:

懶載入和預載入

懶載入和預載入 懶載入的原理及實現 處理預載入時設定img 的src 屬性和img 的onload 事件的位置前後順序關係 關於的預載入,你所不知道的 載入的過程是非同步的 一 懶載入 介紹 目的 二 預載入 介紹 目的 這對畫廊及佔據很大比例的 來說十分有利,它保證了快速 無縫地發布,也可幫助使用...

預載入和懶載入

懶載入 通過監聽scroll事件,判斷進入可視區域之後請求資源 對於電商等很多,頁面很長的業務場景適用 減少無效資源的載入 併發載入的資源過多會阻塞js的載入,影響 的正常使用 可以使用原生js或者引用zepto.min.js var viewheight document.documentelem...

懶載入和預載入

懶載入和預載入 懶載入的原理及實現 處理預載入時設定img 的src 屬性和img 的onload 事件的位置前後順序關係 關於的預載入,你所不知道的 載入的過程是非同步的 一 懶載入 介紹 目的 二 預載入 介紹 目的 這對畫廊及佔據很大比例的 來說十分有利,它保證了快速 無縫地發布,也可幫助使用...