3***@qq.com
3***@qq.com
  • 发布:2017-03-31 16:59
  • 更新:2017-04-01 11:13
  • 阅读:2532

跳转至预加载的页面后数据显示延迟问题

分类:MUI

请问各位大神:
从A页面跳转到预加载好的B页面,B页面要用ajax从服务器中取出数据并显示,现在跳过去后会先显示页面,但是数据会延迟1秒左右才会显示。这该如何解决,或者有什么办法可以让B页面的数据完全加载完再跳转过去。 另外在跳转的过程中丢帧怎么优化比较好?

               mui.init({  
                 preloadPages:[  
              {  
                    id:'hosHP.html',  
                    url:'../finddoctor/hosHP.html'             
              },{  
                    id:'docHP.html',  
                    url:'../finddoctor/docHP.html'   
              }  
              ]  
            })
                               //点击热门医院跳转至详情  
                 var detailPage = null;  
                //添加列表项的点击事件  
                mui('#demo4').on('tap', '.box-d-a', function() {  
                var hos_id = this.getAttribute('hos-id');  
                //获得详情页面  
                if(!detailPage){  
                detailPage = plus.webview.getWebviewById('hosHP.html');  
                 }  
                //触发详情页面的detailPage事件  
                 mui.fire(detailPage,'detailPage',{  
                 hos_id:hos_id  
                    });  
                mui.openWindow({  
                 id:'hosHP.html',  
                 show:{  
                event:'loaded',//页面显示时机,默认为titleUpdate事件时显示  
                    }  
                 });
2017-03-31 16:59 负责人:无 分享
已邀请:
DCloud_UNI_CHB

DCloud_UNI_CHB

大致思路:
1、A页面通过自定义事件通知B页面,然后开始转雪花
2、B页面监听事件,接到A页面消息后,开始发起ajax请求
3、B页面获得ajax响应后,关闭雪花,将自己显示出来

实现理念就是:B页面控制显示时机,而不是在A页面使用openWindow方法打开,B页面伪代码如下:

//B页面监听自定义事件  
window.addEventListener('detailPage',function(event){  
  //1、通过event.detail获取参数  
  //2、发起ajax请求  
  //3、ajax响应中显示当前webview  
  plus.webview.currentWebview().show();  
});
  • 3***@qq.com (作者)

    那是不能用预加载了吗?

    2017-03-31 17:48

  • DCloud_UNI_CHB

    回复 3***@qq.com:可以,预加载只是预先创建,但并不显示

    2017-03-31 17:54

  • 3***@qq.com (作者)

    回复 DCloud_UNI_CHB:可是预加载后openwindow它不显示等待框哦

    2017-03-31 18:36

  • DCloud_UNI_CHB

    回复 3***@qq.com:重新编辑了上面回复,不使用openWindow显示,而是在B页面通过plus.webview.currentWebview().show();自己主动显示

    2017-04-01 11:14

  • 3***@qq.com (作者)

    回复 DCloud_UNI_CHB:

    http://ask.dcloud.net.cn/article/25 这文章上面写到:

    以新闻类app为例,启动首先载入资讯列表list页面,然后后台创建了一个隐藏的webview,加载了一个内容模板content页面。

    在点击list页面的一个新闻item时,调用webview的窗体控制动画,把content页面侧滑进屏幕。

    但content页面仅仅是一个模板而没有数据,在content页面刚侧滑进屏幕时,在content页面有一个“加载中”的提示。

    紧接着content页面开始执行ajax请求,联网加载数据并显示出来。


    请问如何实现在content页面显示“加载中”或者转雪花。

    2017-04-18 18:28

  • DCloud_UNI_CHB

    回复 3***@qq.com:使用div拼一个“加载中...”就可以了,获取真实数据后,再将"加载中"div隐藏

    2017-04-20 15:44

该问题目前已经被锁定, 无法添加新回复