懒加载、预加载、

懒加载是什么:

能防止页面一次性向服务器响应大量请求导致服务器响应慢,页面卡顿或崩溃等问题
是提到前端性能优化中图片资源的优化的非常有效的方法

原理

原理:先将img标签中的src链接设为同一张图片(空白图片),将其真正的图片地址存储再img标签的自定义属性中(比如data-src)。当js监听到该图片元素进入可视窗口时,即将自定义属性中的地址存储到src属性中,达到懒加载的效果。

懒加载的实现

实现原理:基于判断元素是否出现在窗口可视范围内

function isVisible($node){
    var winH = $(window).height(),
        scrollTop = $(window).scrollTop(),     //scrollTop() 方法返回或设置匹配元素的滚动条的垂直位置。
        offSetTop = $(window).offSet().top;   //offset() 方法返回或设置匹配元素相对于文档的偏移(位置)
    if (offSetTop < winH + scrollTop) {
        return true;
    } else {
        return false;
    }
}

再添加上浏览器的事件监听函数,让浏览器每次滚动就检查元素是否出现在窗口可视范围内

$(window).on("scroll", function{
    if (isVisible($node)){
        console.log(true);
    }
})

让元素只在第一次被检查到时打印true,之后就不再打印了

var hasShowed = false;
$(window).on("sroll",function{
    if (hasShowed) {
        return;
    } else {
        if (isVisible($node)) {
            hasShowed = !hasShowed;
            console.log(true);
        }
    }
})

完整代码显示
参考资料

你可能感兴趣的:(懒加载、预加载、)