[关闭]
@caelumtian 2017-08-30T19:29:47.000000Z 字数 1979 阅读 563

web程序设计 第六课 - javascript基础4

Web程序设计(考研)

Ajax

简介

AJAX(Asynchronous Javascript And XML”(异步JavaScript和XML)是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

请求阶段

实例化XHR对象

创建一个ajax对象,用于与服务器异步通信

  1. var xhr = new XMLHttpRequest();

向服务器发送请求

如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:

  1. xhr.open("GET","ajax_info.txt",true);
  2. xhr.send(null);
方法 描述
open(method,url,async) 规定请求的类型、URL 以及是否异步处理请求。method:请求的类型;GET 或POST;url:文件在服务器上的位置async:true(异步)或 false(同步)
send(string) 将请求发送到服务器。string:仅用于 POST 请求

注意:对于POST请求我们要设置头部信息

  1. xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  2. xmlhttp.send("fname=Henry&lname=Ford");

响应

1.XHR的状态:xhr.readyState有5种状态分别如下:

2.XHR状态监听事件:
onreadystatechange 事件被触发 5 次(0 - 4),对应着 readyState 的每个变化。

  1. xhr.onreadyState = function() {
  2. if(xhr.readyState === 4) {
  3. //....
  4. }
  5. }

3.XHR响应状态码xhr.status

4.XHR服务器响应内容获取:

JSON

json是一种数据格式,和js中的对象一样。例如:

  1. {
  2. "name": "caelumtian",
  3. "age": 22
  4. }
  5. #### JSON.parse
  6. 将后端接受到的字符串,转换为对象格式
  7. ```javascript
  8. var data = xhr.responseText;
  9. var obj = JSON.parse(obj);
  10. <div class="md-section-divider"></div>

附录

1.完整的ajax请求程序

  1. var xhr = new XMLHttpRequest();
  2. xhr.open("GET", url, true);
  3. xhr.onreadystatechange = function() {
  4. if(xhr.readyState === 4) {
  5. if((xhr.status >= 200 || xhr.status < 300) && xhr.status === 304) {
  6. console.log(xhr.responseText);
  7. }
  8. }
  9. }
  10. xhr.send(null);

2.对于异步的理解:
首先区分同步请求和异步请求
同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。
异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。
概念分析
同步通信方式要求通信双方以相同的时钟频率进行,而且准确协调,通过共享一个单个时钟或定时脉冲源保证发送方和接收方的准确同步,效率较高;
异步通信方式不要求双方同步,收发方可采用各自的时钟源,双方遵循异步的通信协议,以字符为数据传输单位,发送方传送字符的时间间隔不确定,发送效率比同步传送效率低。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注