性能优化 | 浅析web前端速度优化

二叶草 2020年2月3日22:11:11优化评论阅读模式

性能是良好用户体验的基础,通过优化让用户在使用产品时有更快更舒适的浏览体验。我们在与客户交流业务时,客户常有直观感受与疑问是:基金列表响应速度慢,亦或是界面卡顿怎么优化。为让包含非技术外的业务人员也能简单理解性能优化方法,我们本期尝试用浅显、平直的语言讲解性能优化,主要针对是web前端技术方面。

 

首先简单了解下web应用目前在基金行业内主要以三种形式存在:

  • 网上交易(即pc官网)

  • 微官网(移动端H5)

  • 混合应用(H5 和 原生应用皆有的手机应用)

 

网上交易是比较常见的打开形式,对于pc端而言,在兼容性的需求会比较高。目前pc端开发,基本需求都是在兼容ie8/ie9, 由于兼容ie8的pc,无法使用目前的比较主流的三大框架(vue2.*, react, angular6)。所以将采用传统的html + jq + css 的形式进行编写。

 

问题

传统的jq框架如何获得更好的用户体验?

01 做好基础优化

基础优化同样重要,往往也是容易被忽视的部分:

  1. 首先针对这种多页面的应用项目,我们要确保每个页面的http请求数在合理的范围内。比如一个100kb的文件, 已经是比同时请求4个 25kb的文件要来的快的。

  2. 文件大小体积控制。 比如一个98 kb的包加载的速度肯定是比一个 980kb的包快的。缩小文件体积,可以通过减少代码中的空格以及压缩图片来实现。

  3. 合理的利用缓存。无论是什么数据,只要是重新拉取的,肯定会造成一定的额外开销, 所以应合理的使用浏览器缓存, 某些情况下使用代码级缓存。

  4. 如果存在列表,使用分页形式进行加载,避免单次的网络请求数据过大。

 

效果如何?通过以上4点优化方法,数据对比明显可见▼:

性能优化 | 浅析web前端速度优化

如图所示,左边是对应的是优化前的对应图, 可以看到时间最久的大约在1s钟左右,而右侧的打包后的同一页面是在500ms以内,说明基础的优化点已经可以让web页面加载速度有明显变快体验。

 

技术应用与基金业务

基金列表:数据比较多的基金列表, 以及某些多图请求的页面我们采用懒加载的形式去进行处理,让我们首屏速度明显提升起来。

 

懒加载说明:

  • 用户首次打开时只能看到当前屏幕的需要展示的数据内容, 其他的数据内容都是暂时为请求下来;

  • 监听用户滚动行为, 当到达一定高度,拉取对应的资源

 

02 深度优化:以“缓存”为例

以上的优化点比较初级,积少成多后效果比较明显。如果想进一步提升优化效果,本次以“缓存”为例进行说明。

 

针对缓存处理, 比如像是静态文件,html文件,图片文件,css, js文件我们采用网络协议进行缓存,保证静态文件每次访问不会重新拉取。

后端接口部分,同样可以做缓存。 针对后端数据中get方法中的资源内容, 以及部分不经变动的接口,我们是可以进行本地缓存的。

后端接口缓存方案:

这里就涉及到h5的sessionStorage, localStorage, 这两个属性主要是负责本地存储的。两者有所区别:

  • sessionStorage是会话界别的存储。通俗来说就是本次打开浏览器浏览当前页面的级别。你关掉浏览器页面,它就消失。 

  • localStorage是长存储,也就是只要你储存过一次数据,不清除的情况下, 是会一直保留在本地不会消失的。

 

答疑时间:

这里需要回答下容易存在疑惑的地方,比如安全、性能方面的考虑。

 

针对安全方面, 我们存储在浏览器中的数据有没有可能被别人获取到呢? 答案是有可能,但是概率很低。

  • 首先,这两个属性是针对域名进行存储的。通俗来说,就是两个不同的网站并不能访问到相同的存储空间。

  • 关于漏洞,对于网站本身而言,网站的XSS防护也要做好,防止代码注入获取到我们网站缓存的信息。

  • 接着最重要的一点,是本地不存储敏感信息。什么意思呢? 也就是我们应用于本地缓存的内容只能是非敏感数据,也就是比如基金列表数据, 基金详情数据,首页展示数据等。本身即可公布的内容。

 

性能方面,拿来与传统的存储cookie做一个比较:

性能优化 | 浅析web前端速度优化

以上是对比的结果,在各个方面而言,sessionStorage, localStorage是要优于cookie。

 

03 结尾

缓存的好处总结:

  • 减少网络请求数

  • 减少后续访问应用的白屏时间

  • 对于应用中多次打开对比的页面有较大的性能提升

  • 减少了数据获取的时间

 

性能调优是一个循序渐进的过程,不是一蹴而就的,重在平时的点滴积累。

 

本文来源于:性能优化 | 浅析web前端速度优化-变化吧门户
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧门户观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

在寻找靠谱的建站服务?

提供建站全方位托管服务,告诉我你的需求,剩下的交给我帮你处理,建站过程中碰到的任何小问题免费处理,网站所有数据由你自己掌握,还提供网站SEO指导,犹豫什么呢?联系我吧。

 

  • 赞助本站
  • 微信扫一扫
  • weinxin
  • 加入Q群
  • QQ扫一扫
  • weinxin
二叶草
nginx解析漏洞 优化

nginx解析漏洞

phpstudy(小皮模板存在nginx解析漏洞) 影响版本 phptsuy8.1.07的Nginx1.5.11版本影响版本 phptsuy8.1.07的Nginx1.5.11版本 phpstudy介...
网站SEO优化基础流程(新手必看) 优化

网站SEO优化基础流程(新手必看)

宝塔面板搭建一个获取网站的Favicon图标的APIgetFavicon是一个可以获取网站的Favicon图标并显示在你的网页上的项目。安装方法很简单,属于开箱即食。这篇文章还是基于宝塔面板来搭建。 ...

发表评论