预加载和懒加载

懒加载

通过监听scroll事件,判断图片进入可视区域之后请求图片资源

对于电商等图片很多,页面很长的业务场景适用

减少无效资源的加载

并发加载的资源过多会阻塞js的加载,影响网站的正常使用

可以使用原生js或者引用zepto.min.js

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)

预加载 

  图片等静态资源在使用之前的提前请求

资源使用到时能从缓存中加载,提升用户体验

页面展示的依赖关系维护

使用方法:

1)、img  设置display:none 

2)、var image =  new Image()

image.src = ""

3)、可以使用xmlhttpRequest  不过会涉及到跨域问题  优点就是更加方便操控预加载图片

4)、可以使用preload.js

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值