前端性能优化--延迟加载js、css、图片等组件

上一张讲了关于图标使用雪碧图或者内联图片可以提升性能,但是在工作和开发中我们可能还是会遇到,一个界面加载很多js、css、大的背景图片的时候,这里我给大家提供一种思路,延迟加载,意思就是说,页面一开始加载的时候,你可以将一些需要的文件加载,至于那些后面才会用到的js、css、图片等文件,可以在页面加载之后再加载。

0、普通加载:加载用时215ms


1、延迟加载:加载用时55ms


这里面,我第一幅图片采用传统的写法,第二种写法大家可以看到用时只有前面的40%,这对性能提升有很大的帮助的。当然在使用方面一定要合理,否则会造成页面跳闪等。

有一些网站为了提高首页的速度,可能采用样式文件都是页面样式,后面才会加载外部样式文件,下面的代码是,延迟加载的代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>延迟加载</title>
</head>
<body>

<img id="img1" src="gq1.jpeg" alt=""/>
<img id="img2" src="" alt=""/>

<script>

    setTimeout(function(){
        document.getElementById("img2").setAttribute("src","gq2.jpeg");
        downLoadJs("jquery.js");
        downLoadCss("styles.css");
    },1000);

    function downLoadJs(url){
        var elem = document.createElement("script");
        elem.src = url;
        document.body.appendChild(elem);
    }

    function downLoadCss(url){
        var elem = document.createElement("link");
        elem.rel = "stylesheet";
        elem.type = "text/css";
        elem.href = url;
        document.body.appendChild(elem);
    }
</script>
</body>
</html>

希望本文对大家有所帮助,也希望大家提出建议。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端实现延迟加载是一种优化技术,可以提高网页的加载速度和性能。以下是一些常见的前端延迟加载技术: 1. 图片懒加载:当页面滚动到图片位置时,再加载图片资源。可以使用LazyLoad等库来实现图片懒加载。 2. 资源按需加载:将页面中的资源(如JavaScript、CSS、字体等)分为必需和非必需的部分,在页面加载完成后,再异步加载非必需资源。可以使用Webpack的代码分割功能或使用动态import语法来实现资源按需加载。 3. 滚动加载:当页面滚动到特定位置时,再加载后续内容,常见于无限滚动的场景。可以通过监听滚动事件并判断滚动位置来触发加载新内容。 4. 异步组件:将页面中的某些组件设计为异步组件,在需要时再进行加载。可以使用Vue的异步组件特性或React的懒加载功能来实现。 5. 延迟执行脚本:将不需要立即执行的脚本标记为defer或async,使其在页面加载完成后再执行。defer保证脚本按顺序执行,async则表示脚本异步加载并立即执行。 6. 骨架屏:在页面加载过程中,先展示一个简单的骨架屏,再异步加载真实内容。可以使用CSS前端框架提供的骨架屏技术来实现。 这些延迟加载技术可以根据具体的项目需求选择使用,可以提高页面加载速度和用户体验。需要根据项目实际情况进行评估和选择合适的延迟加载方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值