懒加载、预加载、

懒加载是什么:

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

原理

原理:先将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);
        }
    }
})

完整代码显示
参考资料

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,863评论 1 92
  • review 1. DOM 文档对象模型 元素 新增/删除/插入/替换/复制 cloneNode(bol) 属性 ...
    3hours阅读 440评论 0 0
  • 1、懒加载 占位图、预览图 按需加载1)原理1>不加载全部图片2>首先显示在页面中的图,首先进行加载3>...
    程序员段子手阅读 706评论 0 1
  • 除了得道的高僧,看破红尘的居士,不以物喜不以己悲的名家,绝大多数人应该都是喜欢购物的吧。那种获取自己所需的快感,等...
    婴儿看世界阅读 457评论 11 6
  • 慢慢变老的不是身躯,是被时间麻痹的灵魂。 时间的前段,我们紧紧的挨在一起。它千姿百态,它让人心醉神迷,它是我们心神...
    爱说话的大拇指阅读 444评论 0 0