r***@live.com
r***@live.com
  • 发布:2018-05-01 14:54
  • 更新:2018-05-01 23:36
  • 阅读:1527

页面刷新问题 登陆后重新渲染设置页面的信息

分类:MUI
mui.plusReady(function(){   
			//判断是否登录(UName/Utoken)  
			if(plus.storage.getItem('uName') !== null)  
			{  
				document.getElementById("t_uName").textContent ="账号: " plus.storage.getItem('uName');			  
				console.log(plus.storage.getItem('uName') " " plus.storage.getItem('uToken') " " plus.storage.getItem('uId'));  
				var target = document.getElementById("l_reg");  
				target.style.display="none";  
				var target = document.getElementById("l_log");  
				target.style.display="none";	  
				  
			}  
			else  
			{  
				console.log("没有登录");  
				//refresh();  
				var target = document.getElementById("l_uname");  
				target.style.display="none";  
				var target = document.getElementById("l_reg");  
				target.style.display="block";  
				var target = document.getElementById("l_log");  
				target.style.display="block";	  
			}  
		});

从登陆页面跳转过来之后,想要刷新当前页面然后选择显示的内容

		function refresh(){  
			var wobj = plus.webview.getWebviewById("tab-webview-subpage-setting.html");  
			wobj.reload(true);  
			//window.location.reload()  
		}

这个方法应该怎么调用,我在注销按钮绑定这个事件后,可以实现刷新,但是登陆后跳转,不知道写在哪儿,如果写在值判断中,会一直刷新页面,因为值一直存在!

2018-05-01 14:54 负责人:无 分享
已邀请:
r***@live.com

r***@live.com (作者)

新用户第一天只能发一条帖子? 还有一个问题……

var xhr = new plus.net.XMLHttpRequest();  
//预处理请求  
xhr.open("POST", "http://dstantside.com/Sdnote/api/Note/getAll");  
//参数  
var user = {};  
var attr1 = "Token";  
var attr2 = "UserID";  
user[attr1] = plus.storage.getItem('uToken');  
user[attr2] = plus.storage.getItem('uId');   
//console.log(user[attr1]+" "+user[attr2]);  
//设置请求头  
xhr.setRequestHeader('Content-Type','application/json');  
// 发送HTTP请求  
//console.log(user);  
xhr.send(user);	  
  
xhr.onreadystatechange = function (){  
    if ( xhr.status == 200 ) {  
        //console.log( "xhr请求成功:"+xhr.responseText);  
        var noteList = JSON.parse(xhr.responseText);  
        console.log(xhr.responseText);  
        var nState = eval(noteList.State);    
        console.log(nState);  
  
          
        //加载列表  
        var nData = eval(noteList.data);  
        //console.log(nData);  
        for (var i in nData) {  
  
            //接受数据  
            var lnoteID = nData[i].noteID;  
            var ltitle = nData[i].title;  
            var lnoteTime = nData[i].noteTime.slice(5,16);  
            var ltags = nData[i].tags;  
            var lcontent = nData[i].content;  
  
            console.log(lnoteID);  
            //渲染列表  
            var table = document.body.querySelector('.mui-table-view');  
            var cells = document.body.querySelectorAll('.mui-table-view-cell');  
  
            var li = document.createElement('li');  
            li.className = 'mui-table-view-cell';  
            li.innerHTML = '<div class="mui-table"><div class="mui-table-cell mui-col-xs-10"><h4 class="mui-ellipsis">'+ ltitle + '</h4><h5>标签 :' +ltags+ '</h5><p class="mui-h6 mui-ellipsis">' + lcontent + '</p></div><div class="mui-table-cell mui-col-xs-2 mui-text-right"><span class="mui-h5">' + lnoteTime + '</span></div></div>';  
            //添加数据  
            table.insertBefore(li, table.firstChild);  
        }  
 

请求和返回内容如上,控制台会返回两条一样的数据!

  • r***@live.com (作者)

    这个问题通过本地存储数据解决了


    2018-05-01 16:18

回梦無痕

回梦無痕 - 暂停服务

看得不是很明白,但貌似属于跨页面调用方法的问题。
如果有引入mui,可以试用mui的自定义事件调用目标页面的事件来实现刷新目标页部分数据。
如果没有引入mui。可以使用webview的evalJS方法触发目标页的方法(mui的自定义事件原理也是这个封装这个方法的)。

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