如何优化mui列表跳转到详情页

互联网 18-3-19
因为列表页到详情页是多对一的形式,即列表页的多条数据列表对应的是一个详情页,只是数据不同而;因此,可以在加载列表页时预加载详情页,即创建一个详情页的webview,但是不显示出来,点击列表的时候在通过特定方法触发详情页的事件,获取响应数据,这种做法可以极大程度的缩短响应的时间。

实施方法

  1. 通过预加载提前加载详情页;

  2. 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:{}//自定义扩展参数});
预加载两种方法对比:

二、通过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' //          }      });  });

接下来,在列表页点击列表的时候就可触发详情页的“account_bid_detail_fire”事件,然后触发详情页的ajax来更新请求的数据;

文末福利:

相关推荐:

比较总结mui页面跳转方式之间的差异

MUI实现上拉加载和下拉刷新的实例分享

mui js返回刷新页面的方法实例代码

以上就是如何优化mui列表跳转到详情页的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 列表
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:几种关于html和css的使用方法

相关资讯