每个页面中用
/**
- 处理链接点击事件
*/
$.ready(function() {
$('body').on('tap', 'a', function(e) {
var id = this.getAttribute('href');
if (id) {
if (~id.indexOf('.html')) {
if (window.plus) {
//侧滑导航涉及Index问题,需要单独处理;
if (~id.indexOf('')) {
$.openWindow({
id: id,
url: this.href,
styles: {
zindex: 9999
},
preload: true
});
} else {
$.openWindow({
id: id,
url: this.href,
preload: true
});
}
} else {
document.location.href = this.href;
}
} else {
if (typeof plus !== 'undefined') {
plus.runtime.openURL(id);
}
}
}
});
});
})(mui);
</script>
页面与页面之间用<a href=""></a>进行链接
只要打开后的页面,新打开十几个页面,再去返回打开之前的页面,都不需要从新加载了,这样的好处是有的,但是这样一来,如果APP打开的页面的很多的话,是不是 这些页面都没有关闭?这样下来,岂不是用户用一个APP打开了N个页面?手机打开这样的页面多的话,会不会照成手机发热,或者软件奔溃现象?
在测试的时候 偶然出现APP奔溃现象,是不是和这个相关???
3 个回复
DCloud_UNI_CHB
mui提供了允许并存的预加载页面上限;可使用如下方法设置:
{{{
mui.init({
preloadLimit: limit, //同时并存的预加载窗口数量
});
}}}
比如:设置limit为5,则最多只允许打开5个窗口,打开第6个时,会将第一个关闭,这样保证当前页面最多只有5个窗口并存。
另外,若不想使用预加载,则openWindow的时候,不要传递preload参数即可。
quwei
那如果我不是预加载的,是手动用 openWindow 方法打开的,但是以前的页面没有关闭。
preloadLimit: limit 这个设置会自动把打开的旧页面关闭吗?
DCloud_UNI_CHB
openWindow方法中若传了preload:true,则preloadLimit: limit同样会关闭对应页面;若没传,则点击后退时,mui也会默认关闭。