ajax01
1、ajax简介
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181029180730534.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RhbnF1cmV5,size_16,color_FFFFFF,t_70)
涉及AJAX的操作页面不能用文件协议访问
使用ajax发送请求:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181029191528295.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RhbnF1cmV5,size_16,color_FFFFFF,t_70)
send参数缺省默认为null
onreadyatatechange事件在状态改变时就会触发。
.readyState 返回当前所处状态 ,有0—4 共5个状态
各数字的含义:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181029211101820.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RhbnF1cmV5,size_16,color_FFFFFF,t_70)
2-已经接受到相应报文的响应头
3-正在下载相应报文的响应体
4- 整个响应报文已经被完整下载
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181029205145305.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RhbnF1cmV5,size_16,color_FFFFFF,t_70)
为了避免事件覆盖,注册事件时采用以下方法:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181029205656964.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RhbnF1cmV5,size_16,color_FFFFFF,t_70)
.getAllResponseHeaders()
获取响应头中的指定键:
.getAllResponseHeader(‘键名’)
返回所有 响应头
onload事件:不考虑兼容问题,当onload事件触发时,就是状态变为4时的情形
它是html5提供的XMLHttpRequest 2.0 version 提供的
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181029214509682.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RhbnF1cmV5,size_16,color_FFFFFF,t_70)
2、XML简介:
描述数据的一种方式。例:
已被json取代
4、AJAX遵循http协议:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181030083955317.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RhbnF1cmV5,size_16,color_FFFFFF,t_70)
5、数据接口
http协议中约定报文内容时字符串。当返回有结构的数据时,采用Json格式
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181030092251813.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RhbnF1cmV5,size_16,color_FFFFFF,t_70)
别人提供好的接口,我们拿来用,就不需要开发服务端了
接口像下面一样
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181030093007211.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RhbnF1cmV5,size_16,color_FFFFFF,t_70)
发送get请求并传递参数:
AJAX发送GET请求并传递参数
发送POST请求:不刷新页面直接提交用户名及密码
js的模板字符串可以解析变量
在用POST发送请求时,如果请求体是urlencoded格式,要先设置请求头:
xhr.setRequestHeader(‘Content-Type’,‘application/x-www-form-urlencoded’)
AJAX发送POST请求
5、同步模式和异步模式
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181030113725390.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RhbnF1cmV5,size_16,color_FFFFFF,t_70)
默认异步:
![在这里插入图片描述](https://img-blog.csdnimg.cn/2018103019183590.png)
js中计时函数:
console.time(‘秒表名’)//开始一个秒表
console.timeEnd(‘秒表名’)//结束一个秒表
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181030195640398.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RhbnF1cmV5,size_16,color_FFFFFF,t_70)
不使用同步模式
同步模式注册事件
send()会等到请求响应的过程全部完成才会继续
所以要注意事件注册的时机,必须在send()之前
六、相应数据的格式:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181030202725652.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RhbnF1cmV5,size_16,color_FFFFFF,t_70)
1)XML
浏览器默认以Html进行解析,必须设置header
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181030203908421.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RhbnF1cmV5,size_16,color_FFFFFF,t_70)
接收xml的响应
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181030204820269.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RhbnF1cmV5,size_16,color_FFFFFF,t_70)
取元素:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181030205125619.png)
服务端应该设置一个合理的Content-Type
七、如何处理服务端响应的数据
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181030211522846.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RhbnF1cmV5,size_16,color_FFFFFF,t_70)
使用国内模板引擎:ART-TEMPLATE
八、chrome中控制台展开被打印对象时会访问即使的数据
九、线程与进程:
1)进程:进行中的程序
2)线程