web 性能提升(将持续更新……)

简介: web 性能提升(将持续更新……)

尽量减少文档大小

  • 不添加不必要的容器

使用时加载

  • 图片懒加载
    https://blog.csdn.net/weixin_41192489/article/details/126263221
  • 视频先用一张带播放按钮的图片显示,待点击播放时,才加载视频

不使用图片

img 标签或 background-image 样式通过路径/网址来引用图片时,都会产生 http 请求,用以下不使用图片的方案,便能通过减少http请求来提升页面渲染性能。

方案1. 将图片转换为Base64编码的数据

适用场景:单次使用的小图片

很多网站都提供了转换功能,如:

http://tu.chacuo.net/imagetodataurl/

上传图片后,复制图片的 URL 数据作为 img 标签的 src 值即可。

<img src="data:image……省略具体图片的URL代码……" alt="">

缺点:

  1. 浏览器无法再缓存图片(当需要在页面中多次引用同一张图片时,不得不在多处粘贴代码并且占用传输带宽),同时增大了样式文件体积。
  2. 移动设备上将Base64编码转化为图片物料也是需要设备的计算成本的,需要“加载”时间。

方案2. 使用CSS绘图

https://blog.csdn.net/weixin_41192489/article/details/126133834

较少 HTTP 请求

将请求进行合并,减少请求数量

http请求耗时的地方有:域名跳转、DNS查找、TCP链接初始化、从缓存中查询等

  • 来自10个不同域名的请求所花费的时间多于来自5个不同域名请求所花费的时间
  • 自5个不同域名请求所花费的时间又多于来自5个相同域名的请求所花费的时间
  • 来自5个相同域名请求所花费的时间多余来自单个(将5个请求图片合并为一个图片)文件所需要花费的时间

减少传输代价的常见技术手段有:

  • 使用CDN
  • 利用浏览器缓存
  • 使用CSS精灵(CSSSprites)
  • 使用Gzip压缩
  • 使用图标字体减少实体图片的请求数
  • 使用数据URI替代图片
    ……

你不知道的性能消耗

隐藏图片的加载

<div id="test">  
<img src="images/test.png" alt="" />  
</div>  

@media all and (max-width: 600px) {  
    #test {   
        display:none;   
    }  
}

页面的宽度不足600px时。虽然图片元素随父容器#test被隐藏而不可见,但实际上图片请求仍然被发出。

更快的样式选择器

getElementsByClassName的OPS更高(几乎是querySelectorAll的800倍),效率更好。

使用类名进行选择时,请优先使用 getElementsByClassName

let elements = Array.prototype.slice.call(  
    document.getElementsByClassName  
    ? document.getElementsByClassName(lazyElementClassName)  
    : document.querySelectorAll('.' + lazyElementClassName)  
);

此处为兼容性写法:IE8不支持document.getElementsByClassName,所有的浏览器都支持document.querySelectorAll

使用 requestAnimationFrame 提升 web 性能

https://blog.csdn.net/weixin_41192489/article/details/126247756

能使用CSS实现的功能勿用JavaScript

JavaScript脚本的运行成本是很高的!

借助后端的力量

  • 服务端渲染
  • 媒体查询改为后端通过判断用户设备浏览器的user-agent,精确返回该设备所需要的前端代码和相关资源。
  • 后端对图片、音频、视频进行实时压缩

性能测试工具

  • 想查看不同浏览器(甚至低版本IE)的资源加载情况,可以使用Dynatrace的dynaTrace Ajax;
  • 想实际测试页面在不同设备上的情况,可以使用BrowserStack服务;
  • 想更细致地分析底层网络请求情况,可以使用CloudShark;
  • 想了解用户的用户体验,可以使用WebPagetest。

更多技术

欢迎大家留言共创,将持续更新哦!

目录
相关文章
|
4月前
|
编解码 缓存 监控
如何提高类Web开发范式的性能?
如何提高类Web开发范式的性能?
|
机器学习/深度学习 JavaScript 前端开发
深入探索WebAssembly:提升Web应用的性能
【10月更文挑战第15天】深入探索WebAssembly:提升Web应用的性能
321 3
|
12月前
|
缓存 JSON 监控
如何在项目中保证 Web 组件化的性能
保证 Web 组件化的性能需要从多个方面入手,综合运用各种优化方法和策略。通过持续的优化和改进,能够提高组件化的整体性能,为用户提供更好的体验,同时也有助于提高项目的开发效率和质量。
264 64
|
Web App开发 JavaScript 前端开发
[译] 用 Web Worker 改善 Vue 组件性能
[译] 用 Web Worker 改善 Vue 组件性能
|
12月前
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
176 5
|
中间件 Go API
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
1302 1
|
机器学习/深度学习 缓存 监控
利用机器学习优化Web性能和用户体验
【10月更文挑战第16天】本文探讨了如何利用机器学习技术优化Web性能和用户体验。通过分析用户行为和性能数据,机器学习可以实现动态资源优化、预测性缓存、性能瓶颈检测和自适应用户体验。文章还介绍了实施步骤和实战技巧,帮助开发者更有效地提升Web应用的速度和用户满意度。
|
机器学习/深度学习 编解码 JavaScript
探索WebAssembly:加速Web应用性能的神奇引擎
探索WebAssembly:加速Web应用性能的神奇引擎
|
机器学习/深度学习 JavaScript 前端开发
WebAssembly:提升Web应用性能的新技术
WebAssembly:提升Web应用性能的新技术
323 0
|
缓存 负载均衡 前端开发
优化Web应用性能的十种策略
在当今的数字化时代,Web应用的性能直接影响用户体验和业务成效。本文深入探讨了优化Web应用性能的十种策略,从前端的资源优化到后端的架构改进,涵盖了缓存机制、异步加载、数据库优化等关键技术手段。这些策略不仅能提升响应速度,还能显著减少服务器负担和带宽消耗,为开发者提供了一系列切实可行的解决方案。

热门文章

最新文章