szaos
szaos
  • 发布:2016-02-13 15:58
  • 更新:2016-02-16 10:59
  • 阅读:1474

两个页面 preload 一个页面会怎么样

分类:MUI

有两个页面 需要同时进入一个页面

比如 拍照功能页面 分别在 两个页面都调用

加入两个页面都 preload这个页面会怎么样
分两种情况,id相同,id不同

2016-02-13 15:58 负责人:无 分享
已邀请:
maq

maq

id 不同的话,就是两个完全不想干的 webview(即使它们加载了同一个 html)。

如果 id 相同的话就要小心了,先创建的 webview 会被【屏蔽】,也就是说,以后再通过 id 来查找 webview,只能得到后面创建的那个。这种情况一般的处理策略是:创建 webview 之前先用 id 检查一下是否已经存在,从而避免重复创建。(mui.openWindow() 支持 createNew 参数)

  • szaos (作者)

    屏蔽是什么概念,旧的view会永远游荡在内存中吗(成为野内存)? 还是会被覆盖?

    2016-02-14 12:03

  • maq

    hehe,【屏蔽】是我的不规范的说法,意思就是用 plus.webview.getWebviewById() 无法取到它,取到的总是后面创建的那个。但其实用 plus.webview.all() 还是可以遍历到的。不过,这种情况毕竟是自己给自己找麻烦,所以最好还是不要使用重复的 id。

    2016-02-14 16:27

chender

chender - 与人为善

如果id一样应该没问题吧,mui里面应该有做判断,只会创建一个共用的webview,哪个页面要用就显示出来,一般的应用场景下是不会有冲突

maq

maq

是的,mui.openWindow() 当 createNew 为 false 时(即缺省值)就是自动检查避免重复。

所以说,id 可以重复使用,但尽量不要用一个 id 创建多个 webview(貌似这种用法只会带来混乱而没有任何实用价值)。

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