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

本文涉及的产品
.cn 域名,1个 12个月
简介: 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。

更多技术

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

目录
相关文章
|
2月前
|
Web App开发 JavaScript 前端开发
[译] 用 Web Worker 改善 Vue 组件性能
[译] 用 Web Worker 改善 Vue 组件性能
|
4月前
|
分布式计算 并行计算 安全
在Python Web开发中,Python的全局解释器锁(Global Interpreter Lock,简称GIL)是一个核心概念,它直接影响了Python程序在多线程环境下的执行效率和性能表现
【6月更文挑战第30天】Python的GIL是CPython中的全局锁,限制了多线程并行执行,尤其是在多核CPU上。GIL确保同一时间仅有一个线程执行Python字节码,导致CPU密集型任务时多线程无法充分利用多核,反而可能因上下文切换降低性能。然而,I/O密集型任务仍能受益于线程交替执行。为利用多核,开发者常选择多进程、异步IO或使用不受GIL限制的Python实现。在Web开发中,理解GIL对于优化并发性能至关重要。
55 0
|
16天前
|
缓存 负载均衡 前端开发
优化Web应用性能的十种策略
在当今的数字化时代,Web应用的性能直接影响用户体验和业务成效。本文深入探讨了优化Web应用性能的十种策略,从前端的资源优化到后端的架构改进,涵盖了缓存机制、异步加载、数据库优化等关键技术手段。这些策略不仅能提升响应速度,还能显著减少服务器负担和带宽消耗,为开发者提供了一系列切实可行的解决方案。
|
6天前
|
网络协议 Windows
[收藏]优化基于Win 2000系统的Web服务器性能
[收藏]优化基于Win 2000系统的Web服务器性能
|
2月前
|
缓存 安全 前端开发
【性能大逆袭】Web2py应用如何从龟速变飞快?六大优化秘籍让你的应用焕然一新!
【8月更文挑战第31天】Web2py是一款备受欢迎的全栈Python Web框架,以其内置的数据库抽象层和安全特性著称。然而,随着应用规模的扩大,性能瓶颈逐渐显现。本文通过对比分析,从代码层面(如减少数据库查询、避免全局变量)到部署策略(如静态文件压缩、CDN加速、选择合适数据库、优化查询、异步处理),全面介绍Web2py应用的性能优化方法及其应用场景。通过具体示例,展示了如何创建并优化一个简单的Web2py应用,旨在帮助开发者构建高效稳定的Web应用。
47 2
|
2月前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
25 1
|
2月前
|
缓存 NoSQL 数据库
Web服务器与数据库优化:提升系统性能的最佳实践
【8月更文第28天】在现代的Web应用中,Web服务器与后端数据库之间的交互是至关重要的部分。优化这些组件及其相互作用可以显著提高系统的响应速度、吞吐量和可扩展性。本文将探讨几种常见的优化策略,并提供一些具体的代码示例。
59 1
|
2月前
|
缓存 前端开发 JavaScript
超时空加速秘籍:揭秘JavaScript前端开发中的性能魔法,让您的Web应用瞬间穿越到未来!
【8月更文挑战第27天】本文介绍了一系列实用的JavaScript性能优化方法并提供了示例代码,包括减少DOM操作、使用事件委托、避免阻塞主线程、异步加载资源、利用浏览器缓存、代码分割以及使用Service Worker等技术,帮助开发者有效提升Web应用性能和用户体验。
40 2
|
2月前
|
存储 缓存 监控
Memcached玩转Web性能:一致性哈希、数据持久化,一文全掌握!
【8月更文挑战第24天】Memcached是一款高性能的分布式内存对象缓存系统,它通过在网络中存储数据并使用简单的键值对机制来提高动态Web应用的性能。它可以显著减少数据库查询次数,进而减轻数据库负载并加快响应时间。为了最大化利用Memcached的优势,建议合理配置内存使用、采用一致性哈希策略、实施数据持久化措施,并持续监控系统健康状况。提供的示例代码展示了如何使用Java创建客户端、添加和获取数据。
31 1
|
2月前
|
缓存 编解码 前端开发
优化Web应用性能的前端技巧:从加载时间到用户体验
在现代Web开发中,提升前端性能不仅仅是为了缩短页面加载时间,更是为了提供更流畅的用户体验。本文将探讨几种有效的前端优化技术,包括懒加载、代码拆分、资源压缩以及浏览器缓存策略。通过具体实例和最佳实践,读者将能够掌握如何系统地提高Web应用的响应速度,减少资源消耗,并最终改善用户的整体体验。
下一篇
无影云桌面