mui.open是打开一个新窗口
但是这个函数会触发一些什么事件呢?
- 会不会向当前窗口发送隐藏(Hide)事件呢?
- 会不会向新窗口发送显示(Show)事件呢?
当一个页面有子页面的时候,当程序让其中一个子页面显示的时候,为什么不会触发这个子页面的Show事件呢?
mui.open是打开一个新窗口
但是这个函数会触发一些什么事件呢?
当一个页面有子页面的时候,当程序让其中一个子页面显示的时候,为什么不会触发这个子页面的Show事件呢?
chender - 与人为善
open一个新的webview的时候,只是显示一个“z-index值“更大的webview,比如你有一个全屏的a页面,现在你要显示一个半屏的b页面,那么b.show之后如果a直接就隐藏了,那就出问题了
NotFish (作者)
还是觉得逻辑不对,subpage是subpage,page是page。open一个page肯定要隐藏当前page。open一个subpage肯定也要发一个事件给page
2017-04-24 11:46
chender
回复 NotFish:如果打开的时候要隐藏当前页面,我上面说的这种场景就会有问题了,如果你确实需要隐藏当前页面,你可以调hide方法进行隐藏;第一次打开一个webview的时候,mui.init就是给你的事件,第二次打开的时候,会触发其show事件
2017-04-24 12:15
NotFish (作者)
subpage是subpage,page是page
2017-04-24 14:19
chender
回复 NotFish:你的意思是一个页面有几个已经创建好的子页面,然后 某个子页面.show的时候,没有触发show事件?
如果真是这样的,那确实是bug
2017-04-24 14:25
NotFish (作者)
比如在这样一个场景下:
一个主页,多个次级页面,主页下三个子页(subpage)
有这么一些情况
2017-04-24 16:21
chender
第一个问题:不管是page还是subpage,都是webview,webview第一次被创建的时候默认就是显示的状态,并且不会触发show事件
第二个问题:打开一个新页面的时候(不管是在page中打开还是subpage中打开),只是将新的页面放到webview栈的最顶层,下面的webview并不会被隐藏,只是被新的webview挡住(除非你显示地调用hide方法),这个逻辑是完全合理的,为什么合理我上面也有说到;
返回的时候没有收到show事件原因同上javascript:;
2017-04-24 16:28
NotFish (作者)
我知道实现上没有隐藏!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!但是逻辑上它是隐藏了的,不是吗?
2017-04-24 16:33
NotFish (作者)
这种事件的逻辑是反人类的…………而且也不一定要使用show或者hide这两个单词,如果会混淆,换几个其他的单词,让逻辑更清楚点不是更好吗?
2017-04-24 16:34
NotFish (作者)
而且对view的抽象还不够,子页面和页面分的不清楚。不是说webview如何实现,而是如何抽象。子页面就是子页面,页面就是页面。
页面显示了,子页面就显示了,页面隐藏了,子页面就隐藏了,子页面显示了,页面就知道子页面显示了,子页面隐藏了,页面就知道子页面隐藏了
2017-04-24 16:39
NotFish (作者)
再说说,“webview第一次被创建就被显示了”,不知道如何吐槽……
2017-04-24 16:41
chender
你想想dom元素是怎么处理这些问题的吧,创建出来之后需不需要show,弹出遮罩层的时候后面的元素是被遮挡还是需要hide,大部分的“界面语言“都是这样,没毛病
2017-04-24 16:51
chender
回复 NotFish:隐藏和被挡住你觉得是一个概念吗?
2017-04-24 16:52
NotFish (作者)
“而且也不一定要使用show或者hide这两个单词,如果会混淆,换几个其他的单词,让逻辑更清楚点不是更好吗?”
而且完全被挡住了,是不是就是隐藏了?虽然实现上并不是,但是效果就是啊!开发者角度就是啊!
2017-04-24 16:57
NotFish (作者)
回复 chender:dom元素是dom元素……页面是页面……虽然实现上,可能页面的一些显示和隐藏跟dom元素一个样,但是页面的逻辑跟dom元素不一样啊
2017-04-24 17:00
chender
个人觉得被挡住和隐藏,对于使用者来说是一个概念,对于开发者来说肯定不是,使用者关注效果,开发者需要关注实际的逻辑
2017-04-24 17:00
NotFish (作者)
回复 chender:api设计者,使用api开发人员,客户……
2017-04-25 09:53