前端框架实现不刷新整个页面刷新数据

前要:今天写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实现不刷新整个页面刷新数据

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),按此方法,可以实现很多很酷的应用:)

猜你喜欢

转载自blog.csdn.net/weixin_45788691/article/details/125737757