说你妹
说你妹
  • 发布:2015-06-18 14:42
  • 更新:2015-06-18 15:21
  • 阅读:1418

调用evalJS导致页面闪屏

分类:5+ SDK

调用evalJS修改标签显示的内容,但是页面会闪屏,并且要闪烁好几次?

2015-06-18 14:42 负责人:无 分享
已邀请:
枫桥居APP

枫桥居APP

闪屏确实是个大问题,希望官方能继续优化这方面的性能~

DCloud_heavensoft

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

该问题目前已经被锁定, 无法添加新回复