美文网首页
web优化之懒加载和预加载

web优化之懒加载和预加载

作者: ysp123 | 来源:发表于2019-05-22 22:26 被阅读0次

懒加载和预加载是常用的web优化的手段。所以我们首先应该明白什么是懒加载和预加载。
懒加载:懒加载也加延迟加载,延迟加载网络资源或符合某些条件时才加载资源。常见的就是图片延时加载。
懒加载的意义:懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数。
懒惰实现方式:
1.第一种是纯粹的延迟加载,使用setTimeOut或setInterval进行加载延迟.
2.第二种是条件加载,符合某些条件,或触发了某些事件才开始异步下载。
3.第三种是可视区加载,即仅加载用户可以看到的区域,这个主要由监控滚动条来实现,一般会在距用户看到某图片前一定距离遍开始加载,这样能保证用户拉下时正好能看到图片。
说了这么多,上代码:

//javascript
<script type="text/javascript">
window.onload = function(){
    var imgs = Array.from(document.querySelectorAll('img'));
    delay();
    window.addEventListener('scroll', exec(delay, 4000));

    function exec(fun, delaytime){
         var timeout,startTime = new Date();
        return function(){
            clearTimeout(timeout);
            tiemout = setTimeout(fun, delaytime);
        }
    }

    function delay(){
        var scrollTop = window.scrollY;
        var clientHeight = document.documentElement.clientHeight;
        //console.log(clientHeight);
        imgs.forEach((item, index)=>{
            if(scrollTop==0 && item.offsetTop<=clientHeight+scrollTop){
                //console.log(item.getAttribute('data_img'));
                item.setAttribute('src',item.getAttribute('data_img'));
            }else if(item.offsetTop<=clientHeight+scrollTop && item.offsetTop > scrollTop){
                item.setAttribute('src',item.getAttribute('data_img'));
            }
        });
    }
}
</script>

从demo的js里面我们可以看出,我们在页面滚动上添加了事件。页面初次加载显示时只会显示页面可视区域的图片,当页面滚动到可视区域后才会加载图片显示图片,如图所示:




两张图可以看出首页加载只显示了两张图片,当向下滚动时继续加载了后边的图片。

预加载:提前加载图片,当用户需要查看时可直接从本地缓存中渲染。
两者的行为是相反的,一个是提前加载,一个是迟缓甚至不加载。懒加载对服务器前端有一定的缓解压力作用,预加载则会增加服务器前端压力。预加载应用如广告弹窗等。

//
var target = document.getElementById('test');
addImg('./2.jpg');
function addImg(url){
    var img = document.createElement('img');
    var image = new Image();
    image.src=url;
    image.onload = function(){
        img.src = this.src;
                img.height = 50;
                img.width = 50;
    }
    target.appendChild(img);
}
//html
<div id="test"></div>

仅以以上两个小列子学习预加载和懒加载。

相关文章

  • web优化之懒加载和预加载

    懒加载和预加载是常用的web优化的手段。所以我们首先应该明白什么是懒加载和预加载。懒加载:懒加载也加延迟加载,延迟...

  • webpack基础使用(五)

    十六、加载构建优化 懒加载 预获取 & 预读取 与 prefetch 指令相比,preload 指令有许多不同之...

  • Web性能优化-懒加载和预加载

    懒加载使用场景 图片进入可视区域之后请求图片资源 对于电商等图片很多,页面很长的业务场景适用 减少无效的资源的加载...

  • 如何实现图片懒加载,预加载!!

    提到前端性能优化中图片资源的优化,懒加载和预加载就不能不说,下面我用最简洁明了的语言说明懒加载和预加载的核心要点以...

  • 面试题

    移动端的性能优化方法有哪些?首屏loading加载,图片的预加载懒加载,按需加载 https为什么比http更安全...

  • 懒加载和预加载

    懒加载和预加载 1. 懒加载 1. 什么是懒加载? 懒加载也就是延迟加载 当访问一个页面的时候,先把img元素或是...

  • JS

    JS 懒加载,预加载 概念:懒加载也叫延迟加载:JS图片延迟加载,延迟加载图片或符合某些条件时才加载某些图片。预加...

  • ViewPager+Fragment预加载和懒加载分析

    1 什么是fragment的预加载和懒加载? 预加载:viewpager显示当前fragment的时候,viewp...

  • 前端性能优化之懒加载,预加载

    一、懒加载 这里以手机淘宝为例,我们并不需要在进入页面时显示所有资源,当用户下拉时我们再展示后续内容:我们来做一个...

  • 图片懒加载

    懒加载与预加载的基本概念。 懒加载也叫延迟加载:JS图片延迟加载 延迟加载图片或符合某些条件时才加载某些图片。 预...

网友评论

      本文标题:web优化之懒加载和预加载

      本文链接:https://www.haomeiwen.com/subject/dabtzqtx.html