南宁一站网网络技术有限公司 广西南宁市 530000
摘要:随着我国的信息社会的发展不断加快,互联网的覆盖率也在日渐提升。高度重视Web前端开发技术,提高人类社会生产活动的便利,加强Web前端开发技术以及优化,具有十分重要的意义。本文简单的分析了Web前端技术体系及其工作原理,针对可以优化的几个方面做了详细的叙述。希望可以对从事Web前端技术体系优化的技术人员有一定的帮助。
关键词:Web前端;开发技术;优化方向
在最近几年当中Web技术得到了进一步的快速发展,这对于Web应用的交互性以及系统能力的发展都具有非常重要的意义。它不仅对用户的浏览体验有非常直接的影响,而且是网站制作水平提升的技术保障。
一、Web前端技术的体系和其工作性质分析
在Web前端技术的体系中,涉及技术工作有,前端构建、工程化(npm/grunt/gulp/webpack等);前后端分离;微信公众号(H5)、小程序、单页应用(SPA);混合开发(Hybrid-app)等,都会用到3个具有支柱性质的关键技术,分别是CSS、JavaScript和HTML。
Web前端技术进行优化,并且确保优化后的Web前端技术能够更好的展开,首先是需要相关工作者对Web前端的工作过程中涉及到的所有细节都需要详细了解,只有在充分的了解的基础上,才能够对Web前端进行优化,并取得良好的效果。
性能瓶颈主要出现在三个场景:
1.在前端工程化开发时每次修改代码打包需要几分钟,太慢(开发构建阶段)
2.web的首屏加载慢,http请求太多(资源加载和页面渲染阶段)
3.页面动画不流畅。滚动页面或者拖拽元素卡顿感严重,甚至页面会崩溃(操作体验阶段)
(一)开发构建阶段(常见问题:如何让Webpack打包更快)
1.并发:使用多进程打包
2.缓存:打包时利用缓存
3.打包量要小:缩小文件搜索范围,减小不必要的编译工作
(二)资源加载阶段
核心思路是:传输量要小、距离要近、并行传输、资源复用。
1.传输量要小
• 构建时HTML压缩;
• 构建时CSS压缩合并;
• 构建时JavaScript压缩合并;
• 构建图片时的压缩;
• 使用SVG sprite 或者字体图标代替图片ICON;
• 服务端开启Gzip,数据在传输之前再次压缩;
• 构建时是使用TreeShaking,减少不必要的代码引入;
• 单页应用路由懒加载,减少首次加载的资源体积;
• 组件懒加载,减少首次加载的资源体积;
• 图片懒加载,减少首次加载的资源体积。
2.解析、并行传输、CDN
• 升级到 HTTP2.0;
• 站点资源多域名部署;
• DNS与解析等;
• 距离要近,静态资源部署到CDN。
3.资源复用
• 服务端配置静态资源缓存
• 打包时分包复用
(三)页面渲染阶段
• CSS在上、JS在下;
• 加载CSS推荐用 link 少用 @import;
• 不重要的外置引入的JS使用defer或者async属性异步加载。
(四)操作体验阶段
1.动画流畅
• 尽量使用transition和animation来实现CSS动画,而不是JS实现动画(运行在主线程对动画的流畅度有影响);
• 动画尽量多用transfrom和opacity(无需重绘和回流,性能最好);
• translateZ/translate3d 开启硬件加速;
• JS动画使用requestAnimationFrame少用setInterval。
2.滚动/移动/操作流畅
• DOM增删操作要少(虚拟长列表、DOM Diff);
• 高频操作使用防抖和节流。
3.密集型计算,计算密集型操作可以交给WebWorker并发处理。
二、Web前端开发技术
(一)DOM是W3C(万维网联盟)的标准,是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容,结构和样式。W3C DOM 标准被分为 3 个不同的部分。
• 核心 DOM - 针对任何结构化文档的标准模型;
• XML DOM - 针对 XML 文档的标准模(不在讨论范围);
• HTML DOM - 针对 HTML 文档的标准模型。
.png)
1.常用DOM操作
查找节点、读取节点信息、修改节点信息、创建新节点、删除节点,对网页进行增删改查的操作。
2.重排和重绘
重排(重构/回流/Reflow):当渲染树的一部分必须更新并且节点的尺寸发生了变化,浏览器会使渲染树中受到影响的部分失效,并重新构造渲染树。
重绘(Repaint):是在一个元素的外观被改变所触发的浏览器行为,浏览器会根据元素的新属性重新绘制,使元素呈现新的外观。比如改变某个元素的背景色、文字颜色、边框颜色等等
(二)AJAX
AJAX技术使用DOM作动态显示和交互,解决服务器数据解析与页面数据获取,创建动态网页,能有效减少后台与服务器间的数据交互量,实现网页异步更新。因此,能减少请求信息量,使网络速度更快、更稳定。
(三)CSS
CSS能用来表示HTML和XML等文件样式的计算机语言,支持大部分字体字号样式,在Web前端开发能对网页排版对象精准控制,从而提高显示效果,优化写法。而且CSS代码精简,所以网页布局调整修改和重构难度小,能有效提高开发效率和访问速度,优化SEO。
(四)JavaScript
JavaScript是Netscape公司的产品,开发目的是为了扩展NetscapeNavigator的功能,是一种介于Java和HTML之间、能嵌入Web页面中基于对象和事件驱动的解释性的编程语言。JavaScript出现后,信息和用户之间不再只是简单的显示与浏览的关系,而是可以进行实时、动态、可交式的表达。当前流行的Ajax也是依赖于JavaScript而存在的。
JavaScript可以被嵌入到HTML文件中,不需要经过Web服务器就可以对用户操作作出响应,使网页更好地与用户交互;在利用客户端个人电脑性能资源的同时,适当减小了服务器端的压力,并减少了用户的等待时间。
三、优化Web前端技术的方法
(一)减少HTTP请求次数
尽量合并图片、CSS、JS。比如加载一个页面,如果有5个css文件的话,那么会发出5次http请求,这样会让用户第一次访问你的页面的时候会长时间等待。而如果把这个5个文件合成一个的话,就只需要发出一次http请求,节省网络请求时间,加快页面的加载。
(二)使用CDN
网站上静态资源即css、js全都使用cdn分发
(三)避免空的src和href
当link标签的href属性为空、script标签的src属性为空的时候,浏览器渲染的时候会把当前页面的URL作为它们的属性值,从而把页面的内容加载进来作为它们的值。所以要避免犯这样的疏忽。
(四)使用gzip压缩内容
gzip能够压缩任何一个文本类型的响应,包括html,xml,json。大大缩小请求返回的数据量。
(五)把CSS放到顶部、把JS放到底部、CSS和JS放到外部文件中
网页上的资源加载时从上网下顺序加载的,所以css放在页面的顶部能够优先渲染页面,让用户感觉页面加载很快,加载js时会对后续的资源造成阻塞,必须得等js加载完才去加载后续的文件,所以就把js放在页面底部最后加载。
目的是缓存文件,但有时候为了减少请求,也会直接写到页面里,需根据PV和IP的比例权衡。
(六)精简CSS和JS
这里就涉及到css和js的压缩了。比如下面的新浪的一个css文件,把空格回车全部去掉,减少文件的大小。现在的压缩工具有很多,基本主流的前端构建工具都能进行css和js文件的压缩,如grunt,glup等。
(七)删除重复的JS和CSS
重复调用脚本,除了增加额外的HTTP请求外,多次运算也会浪费时间。在IE和Firefox中不管脚本是否可缓存,它们都存在重复运算JavaScript的问题
(八)减少DOM元素数量
这是一门大学问,这里可以引申出一堆优化的细节。想要具体研究的可以看后面推荐书籍。总之大原则减少DOM数量,就会减少浏览器的解析负担。
结论
纵观全文,将Web前端开发的技术进行良好的优化,使网页在加载的时候更加快速地进行,使用户在进行工作的时候能够得到更加高效地开展,在一定程度上保障资源不被占用,得到更加充分的使用,促进互联网行业的长远发展。
参考文献:
[1]项雪琰,张雪华.“1+X”证书制度下关于Web前端开发技术人才培养模式的探究[J].电脑知识与技术,2020,16(29):166-167.
[2]焦禹淦.Web前端开发技术课堂教学改革的实践研究[J].科技经济导刊,2020,28(28):149+148.
[3]乔娟.Web前端开发技术以及优化方向探究[J].电脑知识与技术,2020,16(27):202-204.
[4]刘小艮.Web前端开发技术及其优化策略[J].信息通信,2020,(10):164-165.
[5]陈鲱.Web前端开发技术以及优化方向分析[J].新媒体研究,2015(7):39-40.