记一次H5页面卡死的BUG

以前有次开发小程序内嵌页面,相似于网易星球那种,不少钻石能够手动点击收取。css

该页面css动效很是多,几乎页面上除了纯色背景以外所有有动效。小程序

也正由于如此,才作成了小程序内嵌的形式(太大了)。浏览器

当屡次快速点击的时候会出现页面动效卡死不动,点击无反应的结果(偶发)。线程

屡次查询后发现应该与浏览器渲染方式相关:接口

一个页面的展现须要浏览器的多个进程相互配合,而浏览器的 ' GUI渲染线程 ' 和 ' JS引擎线程 ' 是互斥的,当一个线程执行的时候另外一个线程就会中止,冻结。进程

反应到页面上就是快速点击的时候,每次点击都会去修改样式和动效形成尚未渲染完成js又开始执行了,因此形成了页面卡死(低配手机偶发次数明显大于高配)。事件

解决办法就是将页面的动效尽可能不与点击事件相互绑定,js点击事件禁止屡次点击。开发

这样偶发虽然没有了,可是反应速度明显下降了,由于每次点击都会调取后台接口,接口反应速度慢,很是影响页面给用户的直观感觉。产品

由此得出一个结论(后来证实,彻底没人用,不只是慢,页面也太过于花哨,与产品定位严重不符):后台

页面不要堆砌一大堆花里花哨的东西。

相关文章
相关标签/搜索