基于Web前端开发技术以及优化方向

发表时间:2021/6/17   来源:《基层建设》2021年第7期   作者:韩昌杰
[导读] 摘要:随着我国的信息社会的发展不断加快,互联网的覆盖率也在日渐提升。
        南宁一站网网络技术有限公司  广西南宁市  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 文档的标准模型。
       
        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.
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: