前要:今天写react的一对多视频会议的项目时,4秒刷新一次会议成员,每一次4秒重新请求接口的时候,正在会议的成员的视频有的重新加载!就想到4秒刷新的时候获取回来的数组进行和视图的数组进行对比,有改变就会默默刷新掉对应的参数,静默更新状态而不影响当前正在视频的会议!
vue中实现:
vue 或者iview的框架里有个方法:需要刷线当前组件页面,不用刷线整个页面:网上有很多方法,但是不好使,都是刷新整个页面的方法,最终自己找到了方法,很好用:
vue实现无刷新加载数据,使用的技术是依赖注入 关键字为provide inject
App.vue:
<template>
<div id="app">
<router-view v-if="isRouterAlive"/>
</div>
</template>
name:'app',
provide :function() {
return {
reload:this.reload
}
},
data:function(){
return {
isRouterAlive:true
}
},
methods:{
reload:function(){
this.isRouterAlive=false;
this.$nextTick(function(){
this.isRouterAlive=true
})
}
}
然后在需要使用这个方法的的vue组件中注入这个方法
data(){
},
inject:["reload"]
//然后在你想要使用的地方 使用就可以了
this.reload()
vue实现不刷新整个页面刷新数据
vue 或者iview的框架里有个方法:需要刷线当前组件页面,不用刷线整个页面:网上有很多方法,但是不好使,都是刷新整个页面的方法,最终自己找到了方法,很好用:
vue实现无刷新加载数据,使用的技术是依赖注入 关键字为provide inject
在App.vue中:
<template>
<div id="app">
<router-view v-if="isRouterAlive"/>
</div>
</template>
name:'app',
provide :function() {
return {
reload:this.reload
}
},
data:function(){
return {
isRouterAlive:true
}
},
methods:{
reload:function(){
this.isRouterAlive=false;
this.$nextTick(function(){
this.isRouterAlive=true
})
}
}
然后在需要使用这个方法的的vue组件中注入这个方法
data(){
},
inject:["reload"]
//然后在你想要使用的地方 使用就可以了
this.reload()
html网页无刷新数据更新,用javascript实现页面无刷新更新数据
程序设计中会经常碰到一种情况,就是事先无法得知用户会需要哪些数据,必须根据用户选择后再从服务器重新提取数据后反馈给用户。比如一简单的情况,用户选择省份以后,我们立即会在市里边将这个省的所有市重新显示出来。这种情况一般需要将整个页面刷新后才可以重新读取,但这样不仅效率不高外,也显得不太优雅。其实用javascript结合微软件的XMLHTTP对象,我们可以不用刷新,“稍稍”的就可以将数据从服务器上读取出来,显得既专业,又高效。
下面我们就以一个验证用户是否被注册的情况来演示这种技术
1. 首先在服务器上建立一个CheckUser.asp文件,用来检测用户是否存在,根据用户是否存在分别反馈0和
u_name=Request.QueryString("u_name")
if u_name 存在 then
Response.write "0"
else
Response.write "1"
end if
2. 客户端HTML设计:
function check_user_exists(form) {
u_name = form.u_name.value;
if (u_name == null || u_name == '') {
alert("请您输入用户名");
return false;
}
infoBoard = document.getElementById("checkInfo");
infoBoard.innerText = '查询中...';
myurl = location.protocol + "//" + location.hostname + "/CheckUser.asp?u_name=" + u_name;
retCode = openUrl(myurl);
switch (retCode) {
case "-2":
infoBoard.innerHTML = '抱歉,查询失败';
break;
case "1":
infoBoard.innerHTML = '恭喜,' + u_name + '可以使用';
break;
case "0":
infoBoard.innerHTML = '抱歉,用户名' + u_name + '已经被使用';
}
return;
}
function openUrl(url) {
var objxml = new ActiveXObject("Microsoft.XMLHttp")
objxml.open("GET", url, false);
objxml.send();
retInfo = objxml.responseText;
if (objxml.status == "200") {
return retInfo;
} else {
return "-2";
}
}
二、HTML表单设计
value=“检测用户是否存在” onClick=“check_user_exists(this.form);”,经过以上三步,一个不需要页面刷新的数据更新程序就完成了(演示地址:http://www.web9898.cn/reg),按此方法,可以实现很多很酷的应用:)