在webapp上,我正在为我工作,我的团队有一些用户在使用我们的应用时遇到浏览器崩溃。然后他们被迫重启浏览器。该问题出现在不同 OS 的所有浏览器中。我们在浏览器中找不到任何可能影响此问题的插件。我们一直在跟踪我们自己的日志,Windows日志等,没有任何可能与问题相关的发现。当我们成功触发问题时,我们还会看到 CPU - 和 Hardrive 用法。但没有什么是图表。这让我和我的团队怀疑 GPU 有问题。
我们进行了一些研究,发现 CSS 中的动画,过渡,不透明度,变换可以触发 CSS崩溃。但是我们没有知识或经验来得出结论是谁是问题。
我们正在使用硬件加速 CSS ,如:
rake db:migrate
还有一些我们还使用了一些 CSS 旋转关键帧动画:
transform: translate3d(0,0,0) translateZ(0);
在一些遇到浏览器崩溃的用户中,我们实施了功能开关。 功能开关会删除所有转场,转换和关键帧动画。他们一直告诉我们,他们认为功能开关是一种改进。但我们无法判断它是否仅仅是安慰剂,还是真的有帮助。
所以在我们从应用程序中删除一堆转换和转换之前,我认为如果有其他人遇到同样的问题,那么值得一试。欢迎所有的想法和想法。
值得一提的是,我们的网络应用程序使用 knockout.js
单页应用答案 0 :(得分:0)
我遇到了崩溃iOS-Safari浏览器的同样麻烦。我写了一些注意时间贴在下面 -
- 不要在转换属性中使用all,只使用要设置动画的属性(避免转换:全部400ms,尝试转换:颜色 400毫秒,背景400毫秒)
- 尽可能多地使用关键帧动画
- 减小文件大小
- 减少请求并优化图片
- 使用translate3D,这将迫使iOS使用3D加速和更好的内存分配。
醇>如果您仍然不幸,请删除iOS和的所有转换 使用JS动画,我知道当你不能使用库时它很昂贵 像TweenMax,但这是唯一的解决方案。
注意:JS动画可能会影响您的动画帧速率。使用rAF (请求帧动画)可能会增强一点。
*** CSS3动画非常需要动画量少的网站,输出~60 FPS,但JS确实根据 设备
希望你发现它很有用。我建议你坚持使用新功能,只需尝试修复它。
祝你好运。