实施方法 通过预加载提前加载详情页;
mui.fire 触发详情页面指定事件,调用ajax更新数据;
一、预加载的实现(两种方法):
官方地址
预加载方法一: 通过mui.init方法中的preloadPages参数进行配置。
mui.init({
preloadPages:[
{
url:prelaod-page-url, id:preload-page-id,
styles:{},//窗口参数
extras:{},//自定义扩展参数
subpages:[{},{}]//预加载页面的子页面
}
],
preloadLimit:5//预加载窗口数量限制(一旦超出,先进先出)默认不限制});
在使用中,可能用不到那么多的属性,下面是我的使用案例:
mui.init({ preloadPages: [{
url: 'account_detail.html',
id: 'account_detail.html'
}]
});
只需要设置url和id就可以,详情页需要的参数在使用mui.fire的时候传过去;
预加载方法二: 通过mui.preload方法预加载。
var page = mui.preload({ url:new-page-url, id:new-page-id,//默认使用当前页面的url作为id
styles:{},//窗口参数
extras:{}//自定义扩展参数});
预加载两种方法对比: 1.方法一为异步创建预加载页面,并且可以同时创建多个页面,但是由于是异步的,因此不能立即获取到创建的webview对象,并且需要使用plus.webview.getWebviewById来获取到创建的webview;
2.方法二为同步创建预加载页面,可以在创建后同步获取到webview,即方法二的“page”变量;但是方法二只能同时创建一个预加载的页面;
二、通过mui.fire触发自定义事件 原理:两个同时存在的webview之间可以通过mui.fire方法来触发另一个webview中的自定义事件,因此,我们可以在详情页中创建一个自定义事件,监听列表页中的mui.fire方法。
mui.fire( target , event , data )
target:详情页(列表页中预加载的详情页)的webview;
event:详情页中监听的自定义事件;
data:需要传给详情页的参数;
1.在详情页创建并监听自定义事件“account_bid_detail_fire”:
$.plusReady(function() { /**
* 实例化获取接口数据方法
*/
var get_bid_detail = new GET_BID_DETAIL(); window.addEventListener('account_bid_detail_fire', function(event) { //获得事件参数
var id = event.detail.id; console.log(JSON.stringify(event.detail)); //触发ajax,根据id向服务器请求当前列表详情
get_bid_detail.init(id);
});
});
mui.fire从列表页传的参数都在event.detail中,可以 输出具体查看;
2.在列表页触发“account_bid_detail_fire”事件:
mui(document.body).on("tap", ".account_bid_list", function() {//触发详情页面的account_bid_detail_fire事件
var detail_webview = null; if(!detail_webview) { //判断webview是否存在
detail_webview = plus.webview.getWebviewById("account_detail.html");
} //detail_webview是在列表页中预加载的页面;
mui.fire(detail_webview, 'account_bid_detail_fire', { id: _this.dataset.id
}); //打开详情页面
mui.openWindow({ id: "account_detail.html",//详情页webview的id
show: { aniShow: 'none', //页面不显示动画
duration: '0' //
}
});
});
相关推荐:
比较总结mui页面跳转方式之间的差异
MUI实现上拉加载和下拉刷新的实例分享
mui js返回刷新页面的方法实例代码
以上就是如何优化mui列表跳转到详情页的详细内容,更多请关注Gxl网其它相关文章!
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did71388
通过预加载提前加载详情页;
mui.fire 触发详情页面指定事件,调用ajax更新数据;
一、预加载的实现(两种方法):
官方地址
预加载方法一:通过mui.init方法中的preloadPages参数进行配置。
mui.init({ preloadPages:[ { url:prelaod-page-url, id:preload-page-id, styles:{},//窗口参数 extras:{},//自定义扩展参数 subpages:[{},{}]//预加载页面的子页面 } ], preloadLimit:5//预加载窗口数量限制(一旦超出,先进先出)默认不限制});在使用中,可能用不到那么多的属性,下面是我的使用案例:
mui.init({ preloadPages: [{ url: 'account_detail.html', id: 'account_detail.html' }] });只需要设置url和id就可以,详情页需要的参数在使用mui.fire的时候传过去;
预加载方法二:通过mui.preload方法预加载。
var page = mui.preload({ url:new-page-url, id:new-page-id,//默认使用当前页面的url作为id styles:{},//窗口参数 extras:{}//自定义扩展参数});预加载两种方法对比:1.方法一为异步创建预加载页面,并且可以同时创建多个页面,但是由于是异步的,因此不能立即获取到创建的webview对象,并且需要使用plus.webview.getWebviewById来获取到创建的webview;
2.方法二为同步创建预加载页面,可以在创建后同步获取到webview,即方法二的“page”变量;但是方法二只能同时创建一个预加载的页面;二、通过mui.fire触发自定义事件
原理:两个同时存在的webview之间可以通过mui.fire方法来触发另一个webview中的自定义事件,因此,我们可以在详情页中创建一个自定义事件,监听列表页中的mui.fire方法。
mui.fire( target , event , data )
target:详情页(列表页中预加载的详情页)的webview;
event:详情页中监听的自定义事件;
data:需要传给详情页的参数;1.在详情页创建并监听自定义事件“account_bid_detail_fire”:
$.plusReady(function() { /** * 实例化获取接口数据方法 */ var get_bid_detail = new GET_BID_DETAIL(); window.addEventListener('account_bid_detail_fire', function(event) { //获得事件参数 var id = event.detail.id; console.log(JSON.stringify(event.detail)); //触发ajax,根据id向服务器请求当前列表详情 get_bid_detail.init(id); }); });mui.fire从列表页传的参数都在event.detail中,可以 输出具体查看;
2.在列表页触发“account_bid_detail_fire”事件:
mui(document.body).on("tap", ".account_bid_list", function() {//触发详情页面的account_bid_detail_fire事件 var detail_webview = null; if(!detail_webview) { //判断webview是否存在 detail_webview = plus.webview.getWebviewById("account_detail.html"); } //detail_webview是在列表页中预加载的页面; mui.fire(detail_webview, 'account_bid_detail_fire', { id: _this.dataset.id }); //打开详情页面 mui.openWindow({ id: "account_detail.html",//详情页webview的id show: { aniShow: 'none', //页面不显示动画 duration: '0' // } }); });
相关推荐:
比较总结mui页面跳转方式之间的差异
MUI实现上拉加载和下拉刷新的实例分享
mui js返回刷新页面的方法实例代码
以上就是如何优化mui列表跳转到详情页的详细内容,更多请关注Gxl网其它相关文章!
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did71388