首页 SEO技术 正文

全汇总 web前端性能提升 (3d焰舞字谜全汇总)

SEO技术 2024-09-25 17
全汇总

本文目录导航:

web前端性能提升(全汇总)

前言

web前端性能提升,老生常谈的话题,也是每个企业每个名目最为关心的疑问。

为了经常使用户体验到达极致,咱们不得不为每一个细节深思揣摩,尽或许到达咱们想要的打算。

面试中咱们也经常被问到性能提升的疑问,假设胡乱交叉一些提升打算,面试官会觉得没有条理性,咱们也回答的没有拿捏感,一切咱们更应该有思绪、有条理的叙说出一个前端性能提升相对完整的流程。

这篇文章我将以几个慷慨向总结性能提升,思绪也是从阅读器-〉资源-〉图片-〉代码层面来解说。

提升模块阅读器:

增加HTTP恳求如Chrome阅读器最多同时准许对同一个域名Host建设6个TCP衔接,不同的阅读器有所区别,增加http恳求也就是增加咱们html里css/js等资源的数量

经常使用HTTP2.0须要性能一个支持h2的web主机,并下载装置一张TLS证书,让阅读器与主机经过h2链接http2.0长处:

驳回二进制格局传输数据,1.1是文本格局

对信息头驳回Hpack启动紧缩传输,能够节俭信息头占用的网络流量,1.1每次恳求,都会携带少量冗余的头信息,糜费了很多宽带资源

异步衔接多路复用

ServerPush,主机端能够更快的把资源推送到客户端

坚持与HTTP1.1语义的向后兼容性也是该版本的一个关键

设置阅读器缓存战略关键为设置缓存战略:[强缓存和协商缓存(编写中)]()

白屏期间做加载动画增强用户体验

资源:

静态资源cdn静态css/js/img等资源可以做cdn缓存,这样把资源同步到全国世界各地,用户就能更快访问到

静态资源独自域名

cookie传输,独自域名,不会携带cookie

繁难分流缓和存(动态分别,无利于静态资源做cdn缓存)

gzip紧缩使资源体积更小服务端性能,如nginx可性能支持gzip紧缩资源传输的方式假设阅读器支持gzip解析,主机就会推送gzip的资源,在http的相应头里可以看到显示Content-Encoding:gzip

做服务端渲染(SSR)如今干流框的react、vue造成的一个痛点,就是页面构建交给了客户端来渲染,构建的环节无疑是排在了恳求到html/js资源后,也就是至少两次http恳求后才开局构建,这无疑是造成白屏的关键点之一,所以做ssr页面的话,能够间接前往页面,增加了不少首屏渲染期间

将CSS放在文件头部,JavaScript文件放在底部复线程js或许会阻滞文档加载

图片:

字体图标替代图片图标一些通用的小图标,如箭头,叉,可以经常使用字体图标,增加恳求,渲染更快

精灵图一些带有企业特征的小图标,如淘宝购物车,笑脸娃娃,可以经常使用精灵图,让一张图上带有多个小图,而后经常使用css背景定位来显示出适合的位子,能大大增加恳求

图片懒加载为了首屏渲染更快,图片可设置一张加载图替代,当页面在可视区域内时在交流为正真的图片假设有首屏很大的高清图,可先渲染明晰度低的缩略图,在首页基本构建实现下一次性事情循环再去交流为高清图

图片预加载可以在之后恳求一些其余中央须要的图片资源比如咱们有一个优惠页经常使用了高清图,咱们可以在它的入口前的首页就加载它,当咱们出来页面时,阅读器就会从缓存里读取这张图片

经常使用png格局的图片PNG格局是WEB图像中最通用的格局,它是一种无损紧缩格局

小于10k的图片可以打包为base64格局可以经常使用webpackurl-loader解决

代码:

慎用全局变量

全局变量定义在全局口头高低文,是一切作用域链的顶端。部分找不到就会不时往上找,影响性能

全局口头高低文不时存在于高低文口头栈,直到程序分开,不利于GC回收

命名污染

缓存全局变量将经常使用中不可防止的全局变量缓存到部分

增减轻绘回流回流:当元素的规模尺寸,规划,暗藏等扭转的时刻,renderdom须要从新构建,这就称为回流重绘:元素只降级外观,格调,而不会影响规划的,叫重绘

节流、防抖

少用闭包、增加内存走漏

减少数据读取次数如for循环提升,增加length读取次数

letarr=[1,2,3]for(vari=0;i<;i++){(arr[i])}//提升for(vari=0,len=;i<len;i++){(arr[i])}

文档碎片提升节点参与dom()

增加判别层级增加ifelse,提早returnif不满足的逻辑

字面量与结构式数组、对象、字符串等,间接申明比new更快

名目打算提议(额外)

长列表提升

webworkerwebworker是运转在后盾的js,独立于其余脚本,不会影响页面你的性能。

并且经过postMessage将结果回传到主线程。

这样在启动复杂操作的时刻,就不会阻塞主线程了。

防止ifarme嵌套网页阻止了onload,经常使用户觉得加载很慢的觉得与父页面共享阅读器衔接池,与父页面并行占用http最大衔接数,所以资源加载更慢不利于seo兼容性不太好,如小程序外面嵌入h5,h5又经常使用了ifarme

webpack提升(额外)

减小代码体积

按需加载

提取第三库代码

webpackdll提升

开头

总体大略分为以上这几类的提升打算,共20多个小点假设您有更好更多的前端性能提升方式,欢迎补充!!后续有其余的提升打算,我会继续补充此文!!欢迎收藏!

如何对前端性能启动提升

前端开发代码提升、可保养性、阅读器兼容性是十分关键的课题。

从实践的工程运行角度登程,最常遇见的前端提升疑问。

前端性能启动提升规定,基本可以涵盖如今前端大部分的性能提升准则了,很多愈加geek和精细提升方法都是从这些准则外面加长出来的。

前端性能启动提升都有哪些规定

2. 经常使用CDN

网站上静态资源即css、js全都经常使用cdn散发,包括图片

3. 防止空的src和href

当link标签的href属性为空、script标签的src属性为空的时刻,阅读器渲染的时刻会把以后页面的URL作为它们的属性值,从而把页面的内容加载出去作为它们的值。

所以要防止犯这样的疏忽。

4. 为文件头指定Expires

新浪微博的这个css文件的Expires期间是2016-5-04 09:14:14.

5. 经常使用gzip紧缩内容

gzip能够紧缩任何一个文本类型的照应,包括html,xml,json。

大大增加恳求前往的数据量。

6. 把CSS放到顶部

网页上的资源加载时从上网下顺序加载的,所以css放在页面的顶部能够优先渲染页面,让用户觉得页面加载很快。

7. 把JS放究竟部

加载js时会对后续的资源形成阻塞,必定得等js加载完才去加载后续的文件 ,所以就把js放在页面底部最后加载。

8. 防止经常使用CSS表白式

举个css表白式的例子

font-color: expression( (new Date())()%3 ? “#FFFFFF : “#AAAAAA );

这个表白式会继续的在页面上计算样式,影响页面的性能。

并且css表白式只被IE支持。

9. 将CSS和JS放到外部文件中

目标是缓存文件,可以参考准则4。

但有时刻为了增加恳求,也会间接写到页面里,需依据PV和IP的比例掂量。

10. 掂量DNS查找次数

增加主机名可以节俭照应期间。

但同时,须要留意,增加主时机增加页面中并行下载的数量。

IE阅读器在同一时辰只能从同一域名下载两个文件。

当在一个页面显示多张图片时,IE 用户的图片下载速度就会遭到影响。

所以新浪会搞N个二级域名来放图片。

上方是新浪微博的图片域名,咱们可以看到他有多个域名,这样可以保障这些不同域名能够同时去下载图片,而不用排队。

不过假设当经常使用的域名过多时,照应期间就会慢,由于不用照应域名期间不分歧。

11. 精简CSS和JS

这里就触及到css和js的紧缩了。

比如上方的新浪的一个css文件,把空格回车所有去掉,增加文件的大小。

如今的紧缩工具备很多,基本干流的前端构建工具都能启动css和js文件的紧缩,如grunt,glup等。

12. 防止跳转

有种现象会比拟坑爹,看起来没什么差异,其实屡次了一次性页面跳转。

比如当URL本该有斜杠(/)却被疏忽掉时。

例如,当咱们要访问 http:// 时,实践上台往的是一个蕴含301代码的跳转,它指向的是 http:// /(留意末尾的斜杠)。

在nginx主机可以经常使用rewrite;Apache主机中可以经常使用Alias 或许 mod_rewrite或许the DirectorySlash来防止。

另一种是不用域名之间的跳转, 比如访问 http:// /bbs跳转到 http:// /。

那么可以经过经常使用Alias或许mod_rewirte建设CNAME(保留一个域名和另外一个域名之间相关的DNS记载)来替代。

13. 删除重复的JS和CSS

重复调用脚本,除了参与额外的HTTP恳求外,屡次运算也会糜费期间。

在IE和Firefox中不论脚天性否可缓存,它们都存在重复运算JavaScript的疑问。

14. 性能ETags

它用来判别阅读器缓存里的元素能否和原来主机上的分歧。

比last-modified date更具备弹性,例如某个文件在1秒内修正了10次,Etag可以综合Inode(文件的索引节点(inode)数),MTime(修正期间)和Size来精准的启动判别,避开UNIX记载MTime只能准确到秒的疑问。

主机集群经常使用,可取后两个参数。

经常使用ETags增加Web运行带宽和负载

15. 可缓存的AJAX

异步恳求雷同的形成用户期待,所以经常使用ajax恳求时,要被动通知阅读器假设该恳求有缓存就去恳求缓存内容。如下代码片段, cache:true就是显式的要求假设以后恳求有缓存的话,间接经常使用缓存

$({ url : url,>前端性能提升有哪些

前端性能提升关键包括以下几个方面:

1. 紧缩和提升代码

前端开发中,代码的体积和效率间接影响到网页的加载速度和用户体验。

因此,对代码启动紧缩和提升是前端性能提升的关键手腕。

经过去除不用要的空格、换行和注释,经常使用缩写方式和防止冗余代码等方式,可以有效地减小代码体积,提高网页的加载速度。

同时,经常使用工具对代码启动混杂和紧缩,可以进一步提高代码的口头效率。

2. 图片提升

图片是网页中占用带宽较大的资源之一,因此图片提升也是前端性能提升的关键环节。

可以经过紧缩图片、经常使用适当的图片格局、经常使用懒加载技术等方式来提升图片。

此外,还可以思考经常使用雪碧图技术,将多个图标或小图片兼并成一张大图,经过CSS背景定位来显示,增加HTTP恳求数量,提高网页加载速度。

3. 缓存应用

阅读器缓存是前端性能提升的一个关键手腕。

经过正当地设置缓存,可以防止重复恳求相反的资源,提高网页的加载速度。

可以经常使用HTTP缓存头来管理缓存的过时期间,以及经常使用缓存击穿、缓存击穿缓和存雪崩等战略来防止缓存失效带来的性能疑问。

此外,还可以应用阅读器对静态资源的缓存机制,将不经常变化的资源缓存到本地,提高用户体验。

4. 提升渲染性能

前端渲染性能也是影响用户体验的关键起因之一。

可以经过防止适度绘制、经常使用CSS3动画替代JavaScript动画、经常使用requestAnimationFrame等技术来提升渲染性能。

此外,还可以应用阅读器的渲染提升战略,如优先渲染可见内容等,提高页面的渲染速度和用户体验。

同时,关于复杂的页面规划和交互成果,须要正当设计页面结构和经常使用适合的技术打算,防止适度复杂和耗时的操作。

总之,前端性能提升是一个综合性的上班,须要从多个方面入手,联合详细的需求和场景启动提升。

经过不时地学习和通常,可以不时提高前端性能提升的水平,提高用户体验和网站的竞争力。

移动端SEO提升与PC端SEO提升的不同点在哪儿 (移动端SEO推广)
« 上一篇 2024-09-25
作为一名员工应该怎样做 中国移动要开展 (作为一名员工如何做好本职工作)
下一篇 » 2024-09-25

文章评论