百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

总结雅虎前端性能优化技巧(16条)

myzbx 2025-01-06 14:23 68 浏览

前言

在日常开发中,有很多场景需要我们去做好前端优化,为了防止遗忘,加深记忆,今天参阅了一些资料以及自己的一些总结,梳理出来15条优化技巧。

1.合并文件

css、js合并,减少http请求数,每次http请求的建立,都需要进行三次握手,断开时需要四次挥手,http请求数量减少后,对页面的加载速度有很大的提升。

2.雪碧图

css sprites,雪碧图,合并多个图像为一个,通过background-position使用图像。

3.使用base64图片

小图片使用data:url引用,减少不必要的请求。

示例:

data:image/png;base64,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

4.使用缓存

设置缓存来减少不必要的网络请求。强缓存/协商缓存

5.gzip压缩

gzip压缩本质上是一种服务器编码,客户端解码的过程

开启gzip压缩后的请求流程

  • 1.浏览器请求服务器时头信息Accept-Encoding: gzip, deflate来告诉服务器,浏览器支持gzip压缩
  • 2.服务器收到请求后,先生成response,然后通过gzip对response进行编码,并增加Content-Encoding:gzip头信息返回给客户端
  • 3.客户端收到response后,根据gzip进行解码。

6.css引入位置

将css的引入写在head标签内

尽管浏览器没有限制css的引入位置,但是css写在head内可以加快css的加载,避免页面不必要的重绘,css加载会阻塞后续js的执行以及dom树的渲染,所以引入最好位置就是head内js代码之前。

7.避免使用css表达式expression

示例:

background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );

每当鼠标移动或者滚动,都会触发表达式,这样会拖慢页面其他脚本执行效率,影响体验。

8.js/css使用外部引入

将不常用的js或css使用外部引用,利用缓存来加快页面访问速度(相关参考强缓存、协商缓存)。

9.资源压缩

js、css删减注释,压缩,减小js、css体积,加快加载速度。

10.开启持久连接

每个连接可以处理多个请求-响应事务

非持久连接,当响应完毕后,当前连接会关闭,当开启持久连接后,当前连接在接受响应后还可以继续请求。

http开启keepalive,复用http请求,避免频繁建立http请求

11.不要过度使用post

  • post请求浏览器分为两步 1.发送头数据head2.发送请求体。
  • get请求只发送一个tcp数据包

13.控制页面dom数量

当页面解析渲染时,需要将html构建为dom树,解析css生成CSSOM树,将DOM与CSSOM合并生成渲染树,当dom数量过多时会影响dom解析以及最终的渲染时间,所以减少dom数量可以加速页面的渲染时间。

控制台查看dom数量:

document.getElementsByTagName('*').length

14.控制cookie

减少cookie大小,cookie会随每次请求提交到服务器,也会随响应返回到客户端,cookie会影响请求跟响应数据包大小。

15.使用事件代理

事件代理又被称为事件委托,是事件绑定中的一个常用技巧,就是把绑定在子元素上的响应事件委托给父元素,减少事件注册。原理为DOM的事件冒泡,使用事件代理,由父组件代理子组件事件。

事件传播:

  • 捕获阶段 从window对象到目标阶段,称之为捕获阶段。
  • 目标阶段 事件在目标上
  • 冒泡阶段 从目标阶段一层层向上传递称之为冒泡阶段。

16.不要给img标签的src设置为空

老版本浏览器如果检测到src为空,还是会向服务器发送请求,如果想要使用图片懒加载功能,最好给图片设置一个默认图。

图片懒加载实现步骤:

  • 客户端图片设置默认src为默认图
  • 客户端请求服务器,获取图片列表
  • 客户端拿到图片列表后将图片地址赋值给img标签的自定义属性,例如data-src
  • 监听图片是否在可视范围,如果图片在可视范围,则把图片的data-src赋值给src
  • img根据src请求服务器获取图片资源

相关推荐

如何设计一个优秀的电子商务产品详情页

加入人人都是产品经理【起点学院】产品经理实战训练营,BAT产品总监手把手带你学产品电子商务网站的产品详情页面无疑是设计师和开发人员关注的最重要的网页之一。产品详情页面是客户作出“加入购物车”决定的页面...

怎么在JS中使用Ajax进行异步请求?

大家好,今天我来分享一项JavaScript的实战技巧,即如何在JS中使用Ajax进行异步请求,让你的网页速度瞬间提升。Ajax是一种在不刷新整个网页的情况下与服务器进行数据交互的技术,可以实现异步加...

中小企业如何组建,管理团队_中小企业应当如何开展组织结构设计变革

前言写了太多关于产品的东西觉得应该换换口味.从码农到架构师,从前端到平面再到UI、UE,最后走向了产品这条不归路,其实以前一直再给你们讲.产品经理跟项目经理区别没有特别大,两个岗位之间有很...

前端监控 SDK 开发分享_前端监控系统 开源

一、前言随着前端的发展和被重视,慢慢的行业内对于前端监控系统的重视程度也在增加。这里不对为什么需要监控再做解释。那我们先直接说说需求。对于中小型公司来说,可以直接使用三方的监控,比如自己搭建一套免费的...

Ajax 会被 fetch 取代吗?Axios 怎么办?

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!今天给大家带来的主题是ajax、fetch...

前端面试题《AJAX》_前端面试ajax考点汇总

1.什么是ajax?ajax作用是什么?AJAX=异步JavaScript和XML。AJAX是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX可以使网页实...

Ajax 详细介绍_ajax

1、ajax是什么?asynchronousjavascriptandxml:异步的javascript和xml。ajax是用来改善用户体验的一种技术,其本质是利用浏览器内置的一个特殊的...

6款可替代dreamweaver的工具_替代powerdesigner的工具

dreamweaver对一个web前端工作者来说,再熟悉不过了,像我07年接触web前端开发就是用的dreamweaver,一直用到现在,身边的朋友有跟我推荐过各种更好用的可替代dreamweaver...

我敢保证,全网没有再比这更详细的Java知识点总结了,送你啊

接下来你看到的将是全网最详细的Java知识点总结,全文分为三大部分:Java基础、Java框架、Java+云数据小编将为大家仔细讲解每大部分里面的详细知识点,别眨眼,从小白到大佬、零基础到精通,你绝...

福斯《死侍》发布新剧照 "小贱贱"韦德被改造前造型曝光

时光网讯福斯出品的科幻片《死侍》今天发布新剧照,其中一张是较为罕见的死侍在被改造之前的剧照,其余两张剧照都是死侍在执行任务中的状态。据外媒推测,片方此时发布剧照,预计是为了给不久之后影片发布首款正式预...

2021年超详细的java学习路线总结—纯干货分享

本文整理了java开发的学习路线和相关的学习资源,非常适合零基础入门java的同学,希望大家在学习的时候,能够节省时间。纯干货,良心推荐!第一阶段:Java基础重点知识点:数据类型、核心语法、面向对象...

不用海淘,真黑五来到你身边:亚马逊15件热卖爆款推荐!

Fujifilm富士instaxMini8小黄人拍立得相机(黄色/蓝色)扫二维码进入购物页面黑五是入手一个轻巧可爱的拍立得相机的好时机,此款是mini8的小黄人特别版,除了颜色涂装成小黄人...

2025 年 Python 爬虫四大前沿技术:从异步到 AI

作为互联网大厂的后端Python爬虫开发,你是否也曾遇到过这些痛点:面对海量目标URL,单线程爬虫爬取一周还没完成任务;动态渲染的SPA页面,requests库返回的全是空白代码;好不容易...

最贱超级英雄《死侍》来了!_死侍超燃

死侍Deadpool(2016)导演:蒂姆·米勒编剧:略特·里斯/保罗·沃尼克主演:瑞恩·雷诺兹/莫蕾娜·巴卡林/吉娜·卡拉诺/艾德·斯克林/T·J·米勒类型:动作/...

停止javascript的ajax请求,取消axios请求,取消reactfetch请求

一、Ajax原生里可以通过XMLHttpRequest对象上的abort方法来中断ajax。注意abort方法不能阻止向服务器发送请求,只能停止当前ajax请求。停止javascript的ajax请求...