Ajax

88 阅读2分钟

Ajax技术可以使网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面。这使得程序能够更快地回应用户的操作。

一、XMlHttpRequest

XMlHttpRequestAPi 是Ajax的核心,使用Ajax 需要构建一个XMLHttpRequest对象来发送请求。

getXxx.onclico=()=>{
	let  getAdd = new  XMLHttpRequest// 创建Ajax 对象
	getAdd.open('get','www.baidu.com ');// 请求方式,路径
	getAdd.onreadystatechang=()=>{
  	if(getAdd.readyState===4 && getAdd.readyStatus===200){
    	console.log('成功加载 ')
      // 加载到的数据可以在这里通过Dom插入页面
  	}else{
      // 加载失败执行
    }
	}// 加载成功时的回调函数
	getAdd.send()  //发送请求
}

二、onload事件和onerror事件

浏览器允许我们跟踪外部资源的加载——脚本,iframe,图片等。

这里有两个事件:

onload——成功加载

onerror——出现error

除去脚本图片等,Ajax 请求数据更常用的是 onreadystetechange

三、onreadystatechange事件

只要 readyState 属性发生变化,就会调用相应的处理函数 (en-US)。这个回调函数会被用户线程所调用。

注: 不可同步使用

  • readyStata 1. 表示 open

2. 表示send

3. 表示响应了第一个字节(开始成功响应)

4. 加载完成

  • status 状态码 状态码大于200,小于300时 表示加载成功

四、JSON

json是一种标记语言,基于js的标准,支持 数值,字符,对象,true,false,数组,null, 由于它易于人阅读和编写,同时也易于机器解析和生成的特性,非常适合数据交换。是一种轻量级的数据交换格式。

  • JSON.parse 将符合JSON语法的字符串转换成JS对应的类型数据
  • JSON.stringify JSON.parse 的逆运算,将js数据转换为JSON字符串

五、XMLHttpRequest.withCredentials

withCredentials****

它指示了是否该使用类似 Cookies、Authorization Headers (头部授权) 或者 TLS 客户端证书这一类资格证书来创建一个跨站点访问控制(cross-site Access-Control)请求。在同一个站点下使用 withCredentials 属性是无效的。

此外,这个指示也会被用做响应中 Cookies 被忽视的标示。默认值是 false。

MDN : developer.mozilla.org/zh-CN/docs/…

 withCredentials: false, //  默认不使用
  // `adapter` 允许自定义处理请求,这使测试更加容易。
  // 返回一个 promise 并提供一个有效的响应 (参见 lib/adapters/README.md)。