AJAX&Cache

全局刷新和局部刷新

全局刷新:整个浏览器内容全部更新。在网络中传输大量数据,浏览器需要重新加载,渲染页面
局部刷新:浏览器内部发起请求,浏览器局部内容被更新。浏览器url不会动。网络中传输数据较少,给用户体验更好

AJAX是用来做局部刷新的。通过异步对象代替浏览器发起请求。

异步请求对象

所有现代浏览器都内建了XMLHttpRequest对象。创建XMLHttpRequest对象u语法(xhr):

var xmlhttp=new XMLHttpRequest();

这个异步对象存储在浏览器内存中,使用JS语法创建和使用XMLHttpRequest对象

AJAX

“Asynchronous Javascript And XML”(异步 JavaScript 和 XML)

一种做局部刷新的方法,不是语言。AJAX包含的技术主要是JS,DOM,CS,SML等。核心是JS和XML。JS负责创建异步对象,发送请求,更新页面DOM对象。AJAX请求需要 服务器的数据。XML负责网络中传输的数据格式(现在使用的JSON)

AJAX异步实现步骤4步

AJAX中使用XMLHttpRequest对象。
处理数据在第二步是因为请求状态发生变化的时候,异步对象会自动调用onreadstatechange事件对应的函数。
完整示例

xmlHttp.onreadstatechange=funtion(){
	//处理请求状态变化。
	if(readyState==4 && status==200){
		//更新页面
		var data=xmlHttp.responseText;
		document.getElementById("name").value=data;
	}
}

1、创建对象方式

var xmlhttp=new XMLHttpRequest();

2、异步对象 & 绑定事件 onreadstatechange

onreadstatechange事件:

当异步对象发起请求,获取了数据都会触发这个事件。这个事件需要指定一个函数,在函数中处理状态的变化。
例如:

xmlHttp.onreadstatechange=funtion(){
	//处理请求状态变化。
}

异步对象 readyState属性

存有XMLHttpRequest对象的状态,从0到4。
0:请求未初始化,创建异步请求对象var xmlhttp=new XMLHttpRequest();
1:初始化异步请求对象,xmlHttp.open(请求方式,请求地址,true)
2:异步对象发送请求,xmlHttp.send()
3:异步对象接受应答数据,从服务端返回数据。XMLHttpRequest内部处理。(3是异步对象内部使用)
4:异步请求对象已经将数据解析完毕。此时才可以读取数据。(常用,在4的时候,可以使用数据更新页面)

异步对象 status属性

表示网络请求的状况,如果成功返回200,失败则可能是404等…
需要当status==200时,表示网络请求是成功的。

3、初始异步请求对象

异步的方法open()
xmlHttp.open(请求方式 , 服务器端地址 , 同步|异步(默认true表示异步));
例如

xmlHttp.open("get","loginServlet?name=nike&pwd=123",true);

4、发送请求

xmlHttp.send();

获取服务器端返回的数据,使用异步对象的属性 responseText
例如

xmlHttp.responseText;

异步与同步

xmlHttp.open("get","loginServlet?name=nike&pwd=123",true);

其中第三个参数表示了true异步,false同步。使用异步对象发起请求后,不用等待数据处理完毕就可以执行其他操作。
同步则需要等待程序顺序执行,效率较低。

Cache

解决数据字典储存问题,相当于要将数据保存到服务器的内存中。如果服务器处于开启状态,我们就一直能从该缓存中去的数据。

application(全局作用域,上下文作用域)
在服务器启动阶段,将数据存到服务器,服务器启动阶段,数据始终存在。
将数据保存到服务器缓存中,application.setAttribute();
从服务器缓存中取得数据,application.getAttribute();

数据字典
指的是在应用程序中,做表单元素选择内容的相关数据。
普遍应用在下拉框中

数据字典提供了两张表:字典类型表、字典值表
一种类型对应多个值,一个值只能从属于一个类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值