当前位置: 首页 > Web前端 > HTML

网页性能常用优化技巧

时间:2023-03-28 14:56:14 HTML

常用技巧输入URL后浏览器做了什么:1.DNS域名解析;2.建立TCP连接;3.发送HTTP请求;4、服务器处理请求;5、返回响应结果;6.关闭TCP连接;7、浏览器解析HTML;8.浏览器布局渲染;想法:尽量优化每一步。优化:DNS服务由主机自行配置,可以省去DNS查询的步骤。花钱增加带宽和后台优化sql语句的查询速度,这样可以更快的返回前台数据。重新使用连接,并将后端设置为保持活动状态。后台开启gzip代码压缩,浏览器会自动解压加载css再LoadJS,让用户先看到页面,再实现交互。延迟加载,先加载用户看到的第一个页面,再记录其他页面。预加载,比如看小说加载下一页提前http缓存css/js/图片,后台设置缓存时间,通过hash值判断需要更新的文件。Cache-control使用2个以上但不超过4个域名,因为域名限制了最大并发请求数(CDN域名)cookie-free,会将需要cookie请求的多个域名请求和不需要cookie请求的请求分开需要cookie,加快无cookie的请求速度。以下为转载内容:谈前端性能优化,我们应该谈什么背景?在整个前端学习生涯中,我们总能一次次听到“性能”和“体验”这两个词。前端性能优化不仅是前端工程师一直需要关注的实际问题,也是前端面试中经常被问到的一个点。面试官之所以爱问,是因为他们懒。仅仅通过问这个问题,就可以在一定程度上考察面试官的知识广度、知识深度、总结能力、表达能力,并可以顺着这个思路继续问其他问题。当突然问起性能这个问题时,大多数人都会突然一愣。总觉得有很多话要说,却又感觉杂乱无章,不知从何说起。想了想,慢慢想出了早年做面试题时看到的《雅虎性能优化N条军规》,挠头说七八句。面试官面无表情地问:“还有吗?”这一刻,他只好像海绵一样捏着脑袋,再滴出两三滴似是而非的油水。心里满是苦恼,抱怨自己记性不好。其实就算你全部背下来,一口气说几十个,面试官也未必会很满意。一个原因是项目太多没有主次,容易烦人,面试官记不住你说的是什么。二是这样回答显然给人一种死记硬背的感觉。(面试官真的很烂)我们想谈什么和回答绩效问题有两种思路。顺着这两个思路,不用太多记忆就可以很自然、“很有见地”地回答几十个甚至几十个优化方案。当然,前提是你之前实际使用过这些优化方案。思路一、从日常生活中遇到的前端性能场景出发,性能瓶颈主要出现在三种场景。开发中每次修改代码和打包都需要几分钟的时间。太慢了(在开发建设阶段)打开网站要等几十秒才能看到。页面太慢(资源加载和页面渲染阶段)。页面显示后,页面动画不流畅。滚动页面或拖放元素时,卡顿感严重,甚至可能出现页面崩溃(操作体验阶段)1.开发建设阶段(常见问题:如何让Webpackpack更快)并发:使用多-processpackingcache:打包时使用cachepackingvolumeKeepitsmall:缩小文件搜索范围,减少不必要的编译工作。二、资源加载阶段的核心思想是:传输量要小,距离要短,并行传输,资源复用,预加载。传输量要小。构建期间的HTML压缩。CSS压缩和构建期间的合并。JavaScript压缩和合并。构建过程中的图像压缩。使用SVG精灵或字体图标而不是图像图标。在服务器上启用Gzip并在传输前压缩数据。不必要的代码引入单页应用路由懒加载,减少首次加载资源量组件懒加载,减少首次加载资源量图像懒加载,减少首次加载资源量time距离要近静态资源部署到CDN,并行传输升级到HTTP2.0(常见问题:HTTP2.0相比HTTP1.x做了哪些升级?复用;二进制分帧;服务器推送;数据流优先级;headercompression)resourcereuseserverconfigurationstaticresourcesCache(常见问题:HTTP缓存策略?Cache-Control?keep-alive?304?ETag?)打包和复用Preloading浏览器在空闲时间偷偷预加载,3.在页面渲染阶段,CSS在上层,JS在下层加载。推荐使用CSS链接。少用@import并不重要。外部引入的JS使用defer或async属性异步加载。实现CSS动画而不是JS动画(运行在主线程对动画的流畅度有影响)动画尽量使用Transfrom和opacity(不需要重绘和回流,性能最好)translateZ/translate3d开启硬件加速JS动画,使用requestAnimationFrame少用setInterval滚动/移动/操作流畅DOM增删操作要少(虚拟长列表,DOMDiff)高频操作使用防抖和节流密集计算计算密集型操作可以交给WebWorker进行并发处理谷思2.从生活的角度谈前端性能。假设你是公司的CTO。现在您有一个产品需要在尽可能短的时间内推出。在现有团队不加班、不996的前提下如何做?解决方案无非是:压缩需求,迭代开发——多用旧轮子(代码、方案、架构)进行压缩,少用新轮子——增加缓存的人力——并发和前端性能优化以满足压缩需求,迭代开发:静态资源压缩合并,Gzip,各种懒加载,开发打包时缩小文件搜索范围,多用旧轮子(代码,方案,架构),少造新轮子:请求资源时,HTTP缓存,开发打包时配置和使用缓存,打包时配置分包和多路复用增加人力:请求资源时使用HTTP2实现并发请求,开发打包时配置和使用并发能力,WebWorker从以上两个入手ideas,对于有经验的你来说,天生就有创意和创意,很容易让自己和面试官兴奋起来,甚至在一定程度上影响后面提问的表现。脑子里需要浮现出六个字的格言:压缩、缓存、并发。剩下的就交给小脑自由发挥吧。一次了解性能优化www.yuque.com/hvvsva/xcxoqg/gugadx