今天首先复习了一下ajax(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
她的核心对象是XMLHTTPRequest,通过ajax可以实现网页的局部刷新。
//判断浏览器类型
function getXmlHttpRequest() {
var xhr = null;
if((typeof XMLHttpRequest) != 'undefined') {
xhr = new XMLHttpRequest();
} else {
xhr = new ActiveXObject('Microsoft.XMLHttp');
}
return xhr;
}
onreadystatechange——注册一个监听器(绑定时间处理函数)
readyState返回与服务器通讯状态码Number类型
0对象创建,但是没有初始化
1对象建立但是没有调用
2发送数据(send方法被调用)
3数据传送中
4响应结束
responseText——服务器返回的文本
responseXML——服务器返回的xml dom对象
status 获得状态码
xhr.open('get','students.json',true); //打开一个新请求
xhr.status----服务器响应状态 200
xhr.readyState----ajax状态码 4
然后就是cookie和localStorage
localStorage、cookie都是在浏览器端存储的数据
cookie,容量4kb,默认各种浏览器都支持,缺陷就是每次请求,浏览器都会把本机存的cookies发送到服务器,无形中浪费带宽。
优势:所有浏览器都支持,不同目录能共享cookie
弊端:同域内http请求都会带cookie,增加带宽和流量;有个数和大小限制。
localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。
优势:空间更大;操作更方便,有现成的api;更安全;不同目录间也可以访问;清缓存后也存在。
弊端:老版的浏览器都不支持(< ie8)
使用:
window.localStorage.key - 取值
window.localStorage[key] - 取值
window.localStorage.key = value - 设置值
window.localStorage[key] = value - 设置值
window.localStorage.setItem(key,value) - 设置值的方法
window.localStorage.getItem(key) - 取值的方法
window.localStorage.removeItem(key) - 移除一个值
window.localStorage.clear() - 清空所有的值