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

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

分类: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

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