发生情景:一个输入框,点击下跳转到一个选则人员的页面,选完后点确定,销毁选人页面并返回。
问题:跳到选人界面,需要带参数传过去,如果传参,需要自定义事件,可是跳转时 并未触发自定义事件。
nextpage = mui.preload({ url: target, id: target });
setTimeout(function() {
mui.fire(nextpage, method, data);
mui.openWindow({ url: target, id: target });
}, 500);
问题解决:
1. mui.preload为异步执行,所以需要定时器来确定 预加载结束后,再执行fire方法
2. 页面初始化先后过程是 mui.int() mui.ready mui.plusReady,自定义事件我们一般放到plusready中,这个过程是同步的,按照先后顺序执行。如下
[LOG] : 预加载...
[LOG] : start:1529031442704
[LOG] : mui.read...
[LOG] : mui.read>>>
[LOG] : plusReady...
[LOG] : plusReady>>>>
[LOG] : addEvent
[LOG] : end:1529031443162
3. 从本次加载信息看,预加载页面大约需要458毫秒,所以如果是在跳转前预加载页面,则定时器最好大于这个时间。否则容易出现【自定义事件】的【注册】与【触发】前后不一致,也就是自定义事件不执行的问题