海哥一号
海哥一号
  • 发布:2015-06-15 20:06
  • 更新:2015-12-07 17:03
  • 阅读:2135

关于列表有和详细页的加载显示问题

分类:HTML5+
js

关于列表有和详细页的加载显示问题,总的就是第一次点击详细页后,能正常显示,以后每次点击详细页都显示前一页的内容然后在用当前的数据,我的实现如下:
列表页js:

<script>  
        var newp=1,t=0,isend='no';  
            mui.init({  
                preloadPages:[{  
                   id:'xmshow.html',  
                   url:'xmshow.html'             
                 }  
                ],  
                pullRefresh: {  
                    container: '#pullrefresh',  
                    up: {  
                        contentdown: '上拉显示更多',  
                        contentrefresh: '正在加载...',  
                        contentnomore: '没有更多数据了',  
                        callback: pullupRefresh,  
                    }  
                }  
            });  

            var detailPage = null;  
            //添加列表项的点击事件  
            mui('#listdate').on('tap', 'a', function(e) {  
              var id = this.getAttribute('id');  
              //获得详情页面  
              if(!detailPage){  
                detailPage = plus.webview.getWebviewById('xmshow.html');  
              }  
              //detailPage.clear();  
              //触发详情页面的newsId事件  
              mui.fire(detailPage,'newsId',{  
                id:id  
              });  
            //打开详情页面            
              mui.openWindow({  
                id:'xmshow.html',  
                url:'xmshow.html',  
                show: {  
                    aniShow: 'fade-in'  
                }  
              });  
            });  
            /**  
             * 上拉加载具体业务实现  
             */  
            function pullupRefresh() {  
                setTimeout(function() {  
                    if(isend=="no"){  
                    mui('#pullrefresh').pullRefresh().endPullupToRefresh(isend === "ok"); //参数为true代表没有更多数据了。  
                    var table = document.body.querySelector('.mui-table-view');  
                    loaddatelist.xmlist(newp, t, function(rs) {  
                        if(rs.status===1){  
                            var datalist=rs.list;  
                            var datacount=datalist.length;  
                            for (var i=0; i<datacount; i++) {  
                                var li = document.createElement('li');  
                                li.className = 'mui-table-view-cell';  
                                li.innerHTML = '<a class="mui-navigate-right" id="'+datalist[i]['id']+'" href="xmshow.html"><img class="mui-media-object mui-pull-left" src="'+datalist[i]['picurl']+'"><div class="mui-media-body">'+datalist[i]['title']+'<p class="mui-ellipsis">'+datalist[i]['desc']+'</p><p class="mui-ellipsis">价格:'+datalist[i]['price']+'</p><p class="mui-ellipsis">时间:'+datalist[i]['xmtime']+datalist[i]['timedw']+'&nbsp;&nbsp;&nbsp;原价:'+datalist[i]['price1']+'</p></div></a>';  
                                table.appendChild(li);  
                            }  
                            newp=rs.newp;  
                        }else{  
                            mui.toast(rs.msg);  
                        }  
                        isend=rs.isend;  
                        if(isend === "ok"){  
                            mui('#pullrefresh').pullRefresh().endPullupToRefresh(isend === "ok");  
                        }  
                    });  
                    }else{  
                        mui('#pullrefresh').pullRefresh().endPullupToRefresh(isend === "ok");  
                    }  
                    //mui('#pullrefresh').pullRefresh().endPulldownToRefresh();  
                }, 1200);  
            }  
            if (mui.os.plus) {  
                mui.plusReady(function() {  
                    setTimeout(function() {  
                      mui('#pullrefresh').pullRefresh().pullupLoading();  
                    }, 1000);  

                });  
            } else {  
                mui.ready(function() {  
                    mui('#pullrefresh').pullRefresh().pullupLoading();  
                });  
            }  
        </script>

详细页js如下:

<script>  
mui.init({  
            swipeBack:true //启用右滑关闭功能  
        });  
var id;  
window.addEventListener('newsId',function(event){  
    id = event.detail.id;  
    loaddatelist.getonexm(id,function(rs) {  

        if(rs.status){  
            var dateone=rs.datalist;  
            document.getElementById("htitle").innerHTML=dateone.title;  
            document.getElementById("hlogo").src=hosturl+dateone.picurl;  
            document.getElementById("img_title").innerHTML=dateone.desc;  
            document.getElementById("xmjs").innerHTML=dateone.info;  
            document.querySelector('#txtcontent').classList.remove('mui-hidden');  
            document.querySelector('#loader').classList.add('mui-hidden');  
            //var xmbz=dateone.xmbz;  
            //var xmcp=dateone.xmcp;  
            //mui.toast();  
        }  
});  
    mui('#scroll').scroll();  
//  mui.back = function() {  
//      var current = plus.webview.currentWebview();  
//      document.getElementById("htitle").innerHTML='';  
//          document.getElementById("hlogo").src='';  
//          document.getElementById("img_title").innerHTML='';  
//          document.getElementById("xmjs").innerHTML='';  
//      //current.close();  
//  }  
});  
var slider = mui("#slider,#slider1");  
slider.slider({  
    interval: 5000  
});  
</script>

代码有点乱,见谅哈

要怎么才能实现每次访问不出现以前的内容哦.....

2015-06-15 20:06 负责人:无 分享
已邀请:
太阳神

太阳神

要么返回时重置内容,要么返回时清除内容,但你试过后就会发现另外一个问题......先不说了~

海哥一号

海哥一号 (作者)

真的发现hb有时候很奇怪
下面代码,第一次点进去,有内容,第二次点进去,就没内容了,好操蛋...

<script>  
var source   =document.getElementById('entry-template').innerHTML;  
var template = Handlebars.compile(source);  
//alert(source);  
//mui.plusReady(function() {  
    window.addEventListener('newsId',function(event){  
        //获得事件参数  
        var id = event.detail.id;  
        if(id){  
            setTimeout(function() {  
                loaddatelist.tutorone(id, function(rs) {  
                    //mui.toast("参数错------误"+rs.status);  
                    if(rs.status){  
                        mui.toast(rs.list.nick);  
                        document.getElementById("mui-scroll").innerHTML=template(rs.list);  
                    }else{  
                        mui.toast(rs.content)  
                    }  
                });  
            },1000);  
        }else{  
            mui.toast("参数错误"+id);  
        }  
    //});  
});  
</script>
lucida

lucida

这个问题,,使用 官网mui 里面的代码,都 出现白页 或者 正常 或者 转圈 或者 白页...官方都没人解决?

Pmc_Fizz

Pmc_Fizz - 革命尚未成功,通知仍需努力。

这是一个深坑啊 我也在用列表页跳到 详情页 怎么都搞不定啊

maq

maq

这种应用场景,本质上就不是用“预加载”能解决的问题。

预加载的适用场景是:用户点击之前就能确定点击后应该显示的内容,从而预先加载好,等用户点击的时候,就可以“瞬间”显示出来了。

而所谓“详情”页,在用户点击列表中的某一项之前,是不知道该显示什么的,而当用户点击之后,虽然 webview 能够“瞬间”显示出来,但内容本身总归是要通过 http 获取到的,这个时间省不掉,那么在这段时间里显示什么呢?当然题主的程序是看到了上一次残留的内容,然后再被替换成新的内容,这个体验当然不好。好一点的做法是先采用某种能够“瞬间”改写 webview 内容的方法把页面修改成“等待加载”的提示,然后等 http 响应到来后再被替换掉。

至于具体的实现方法,从题主给出的程序出发,只要在 loaddatelist.xmlist() 之前把上一次残留的内容清理掉就可以了。甚至可以像一楼所说,在前一次页面返回的时候就先把页面内容重置掉。

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