预见加载使用的函数是 mui.preload。
假设此时有三个页面 A B C。
A为主页面,进入后预加载B,B预加载C。
此时进入A页面时就会加载B页面,我看控制台的输出,B页面虽然没有显示,但是javascript代码已经被执行了,然后C页面也会被预加载。
上述过程在本来是没什么问题的,但是在开发阶段,编辑A页面时保存,手机上的HBuild程序就会自动重新加载A页面,此时A页面的js就会被执行一次,然后就会预加载B,再预加载C。。。
从控制台后,每次预加载都创建了一个新的B C 页面,但是老的B C页面还依然存在。然后过不了多久就会出现 Uncaught RangeError: Maximum call stack size exceeded. 错误。
不知道是不是我使用方式有问题?
还有一个小问题,为一个button绑定个tap事件,假设<button id='btn'></button>,使用 mui('#btn').on('tap', function(){}) 不行,使用 mui('#btn').on('tap', 'button', function(){})也不行。。最后只能使用 addEventListener函数了。。
看demo上 mui().on() 函数都是使用在 ul 标签上的,这个函数是只能在ul 标签上使用?还是必须要在父标签上使用? 文档里找了好久都没有找到相关的说明。。
最后,有没有一个类似 jquery 的 $.trigger() 的函数。
谢谢~
lzt (作者)
感谢解答,“1.页面显示之后再preload其他页面”,页面显示有没有相应的事件,还是自己绑定个事件,每次显示的时候手动触发?
这个功能印象中好像在哪见过,现在找不着了。。。
谢谢!~
2015-02-12 09:30
DCloud_UNI_FXY
试试pagebeforeshow事件
2015-02-12 12:22
lzt (作者)
不行。。load事件也不行,resume也不行。自己加了个事件,在显示前用mui.fire触发。。。
2015-02-12 13:16