vue项目的性能优化问题,一直以来都是大家比较关注的。

近日负责的项目中,使用了SignalR实时通讯,客户端中点击发起播放视频的请求到服务器,服务器接到请求后再调用前端的播放视频方法,以此来达到播放视频的功能,也可以通过服务器进行广播,以此让另一个客户端可以与之联动,从而达到多个客户端同一时刻由其中一端发起请求,却达到所有客户端同时播放、同时结束的视频联动广播功能。实时通信的功能没话说,反应速度非常快,却恰恰在播放完视频,返回首页的时候出现了约1秒时间的白屏问题!这用户体验感一下子拉低了太多太多!

纠结之余,开始排查问题所在!

首先,联动视频只有在首页跳到视频播放页面返回时才出现这样的问题,而在其它二级或者三级页面可以迅速返回,迅速显示页面内容,问题预计出现在首页!

其次,关于vue项目首屏加载出现白屏的问题是比较常见的,也是大家比较头疼的问题,优化方面也是从路由懒加载,keepAlive, 压缩图片,减少http请求次数,使用nuxt框架等来考虑。但是当下项目的问题并不是首屏加载慢,出现白屏的问题,而是点击返回首页的时候才出现,以此可以断定并不是首屏加载的问题!

最后,与老同学聊了一会,和我说会不会是因为首页频繁操作了dom,引起了回流、重绘!我一开始质疑了同学,因为vue项目我基本不操作dom,而且首页只有一些图片和按钮,并不复杂,也没有操作dom的必要!然后他又说检查一下动画是否已经脱标,如果没有,重绘的话,也可能会引起类似的情况!

于是乎,我从动画开始检查,发现自己之前使用了别人写的水波纹动画特效,在此处,我确确实实操作了dom,注释这些代码,和动画css之后,打包看效果,确实不再白屏了!为了保住这个动画效果又继续做了一些列的修改,终于在不需要操作dom的情况下动画正常显示在页面上,同时也解决了这一白屏bug!

不曾想自己会在方面出现问题,因为动画本来就是定位脱标了的!以后使用别人的东西,还是要仔细一些!哈哈!

关于回流与重绘可以参考下面的网址:讲得非常清晰!

https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/24

vue项目中视频播放结束返回首页出现1秒左右的白屏问题的更多相关文章

  1. vue项目中阻止浏览器返回上一页

    vue项目中在某个页面阻止浏览器返回上一页,适用移动端.PC端. 使用场景例如: 首页 与 A页面     来回跳转,那样点击浏览器返回时也会来回跳转,本想当页面在首页的时候就不再返回了,所以这个时候 ...

  2. vue项目中遇到的那些事。

    前言 有好几天没更新文章了.这段实际忙着做了一个vue的项目,从 19 天前开始,到今天刚好 20 天,独立完成. 做vue项目做这个项目一方面能为工作做一些准备,一方面也精进一下技术. 技术栈:vu ...

  3. 在vue项目中使用axios发送FormData

    这个是axios的中文文档,挺详细的: https://www.kancloud.cn/luponu/axios/873153 文档中的    使用 application/x-www-form-ur ...

  4. vue项目中遇到的一些问题

    或访问:https://github.com/littleHiuman/experiences-about-vue  欢迎补充! vuex 状态 vue-cli 命令行 vue vue vue-rou ...

  5. Vue项目中遇到的一些问题总结

    一.开发环境使用Ajax请求,报错  网上查的资料,在config中的index.js这样设置 proxyTable:{ '/api':{ target:'', //此处为你的API接口地址 chan ...

  6. 如何在VUE项目中添加ESLint

    如何在VUE项目中添加ESLint 1. 首先在项目的根目录下 新建 .eslintrc.js文件,其配置规则可以如下:(自己小整理了一份),所有的代码如下: // https://eslint.or ...

  7. 浅谈 Axios 在 Vue 项目中的使用

    介绍 Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中. 特性 它主要有如下特性: 浏览器端发起XMLHttpRequests请求 Node端发起http ...

  8. 去除vue项目中的#及其ie9兼容性

    一.如何去除vue项目中访问地址的# vue2中在路由配置中添加mode(vue-cli创建的项目在src/router/index.js) export default new Router({ m ...

  9. vue 项目中当访问路由不存在的时候默认访问404页面

    前言: 在Vue项目中,当访问的页面路由不存在或错误时,页面显示为一片空白.然而,通常我们需要对访问url不存在或者错误的情况下添加默认的404页面,即not found页面. 一般的处理方法是: 在 ...

随机推荐

  1. 微信支付宝个人免签约即时到帐接口开发附demo

    支付界面: 扫码支付界面: 付成功后可以跳转到你程序指定的地址! demo: http://likeyunba.com/WeChat-Pay/

  2. C# DataTable查询示例

    代码 public void Test() { #region 初始化数据 /* 数据 张三 语文 34.00 张三 数学 58.00 张三 英语 61.00 李四 语文 45.00 李四 数学 87 ...

  3. C语言中存储多个字符串的两种方式

    C语言中存储多个字符串的两种方式 方式一    二维字符串数组 声明: char name[][] = { "Justinian", "Momo", " ...

  4. 归纳从文件中读取数据的六种方法-JAVA IO基础总结第2篇

    在上一篇文章中,我为大家介绍了<5种创建文件并写入文件数据的方法>,本节我们为大家来介绍6种从文件中读取数据的方法. 另外为了方便大家理解,我为这一篇文章录制了对应的视频:总结java从文 ...

  5. jsp页面关于isELIgnored="false",页面无法解析数据问题

    问题: 首先确定所取的集合里面是否有值,如果没有先检查集合 如果有,就再jsp页面头部添加: isELIgnored="false" 具体如下: <%@ page langu ...

  6. GET和POST的本质区别

    前言:相信小伙伴们面试时候一定都遇到过这个问题,即使没有遇到过,至少也听说过,网上资料一大片,大概每个人都能说出来一些.但是总感觉面试装逼不成功,所以就翻阅了部分资料,进一步整理了下. 一般当我们提到 ...

  7. 轻轻松松学CSS:background

    background是复合属性,它可以分解为8个属性,其中5个属于CSS,另外3个属于CSS3一.CSS    1.background-color:背景色    2.background-image ...

  8. 发生错误 1069 sqlserver

    ---------------------------SQL Server 服务管理器---------------------------发生错误 1069 - (由于登录失败而无法启动服务.),此 ...

  9. android 数据绑定(4)实用特性及疑惑:使用控件、格式化@string/xxx、对象传递、双向数据绑定

    1.在布局内使用其它控件 1.1 效果 箭头所指3个控件的内容随输入框内容而变化. 1.2 示例代码 <?xml version="1.0" encoding="u ...

  10. 【转】Android DrawingCache

    转自:http://magiclen.org/android-drawingcache/ 日期: 2014 年 8 月 27 日 | 作者: Magic Len 開發Android的時候,在許多情況下 ...