调用evalJS修改标签显示的内容,但是页面会闪屏,并且要闪烁好几次?
说你妹
- 发布:2015-06-18 14:42
- 更新:2015-06-18 15:21
- 阅读:1418
调用evalJS导致页面闪屏
分类:5+ SDK
2 个回复
枫桥居APP
闪屏确实是个大问题,希望官方能继续优化这方面的性能~
DCloud_heavensoft
闪屏是发生了重绘,检查下有几处操作造成重绘了。
有时看起来只改一个地方,但相关的css选择器也可能触发重绘。
说你妹 (作者)
那我应该如何避免这个问题,或者说,我如何控制它重绘呢,避免闪屏,谢谢!
2015-06-18 17:11
DCloud_heavensoft
回复 说你妹: 每次引发界面变化的操作都会引发浏览器重绘。改css、改dom都会。但一次更改不会闪屏,连续多次并发重绘操作才会闪屏。另外fix慎用,很容易闪屏。
2015-06-18 23:08
说你妹 (作者)
我是在evalJS中对dom模型中好几个标签的值进行修改,这应该不属于并发吧,在evalJS之外对dom进行修改为什么就不会出现闪屏呀?我没有用fix
2015-06-19 08:44
DCloud_heavensoft
回复 说你妹: 你是对可见webview做evaljs,还是对不可见webview做evaljs,如果是不可见的,evaljs设置后Android下不会当时立即渲染,会在显示该webview时先显示老的,然后渲染新的,是不是这个引发的闪屏?如果是这样,建议你做个延时处理或动画过度
2015-06-19 15:29
说你妹 (作者)
我是对不可见webview做evaljs的,我做了延时也不行,即使我先让webview可见,再执行evaljs也闪烁的很厉害,这个闪烁应该是evalJS内部机制导致的吧
2015-06-19 16:20
DCloud_heavensoft
回复 说你妹: 不是evaljs的问题。你这个问题和Hello mui里的模板是一个道理,看下Hello mui的代码,它先通过evaljs修改下一个页面的标题,然后再显示出来,不会导致闪烁。
2015-06-19 16:46
说你妹 (作者)
回复 DCloud_heavensoft:没找到相关代码,在Hello mui的模版中的evalJS只是控制滚动条滚动,没有修改dom标签
2015-06-19 17:27