AJAX

2018-12-11  本文已影响5人  夏海峰

1、什么是AJAX ?
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
AJAX 不是新的编程语言,而是一种使用现有标准的新方法。
AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。

2、AJAX的起源
在 2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来。Google Suggest 使用 AJAX 创造出动态性极强的 web 界面:当您在谷歌的搜索框输入关键字时,JavaScript 会把这些字符发送到服务器,然后服务器会返回一个搜索建议的列表。

3、XMLHttpRequest对象 是 AJAX 的基础
所有现代浏览器均支持 XMLHttpRequest对象(IE5和IE6使用ActiveXObject)。XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

4、使用 XHR

    // 第1步:创建xhr对象
    var xhr;
    if(window.XMLHttpRequest){
      xhr = new XMLHttpRequest();
    }else{
      xhr = new ActiveXObject('Microsoft.XMLHTTP');  // IE6  IE5
    }

    // 第2步:向服务器发送GET/POST请求
    xhr.open("GET",url,true);
    xhr.send();

    xhr.onreadystatechange = function(){
      if(xhr.readyState == 4 && xhr.status == 200){
        var data1 = xhr.responseText;  // 接收字符串数据
        var data2 = xhr.responseXML;  // 接收XML数据
      }
    }

5、GET / POST
优势、劣势对比。

6、Ajax请求的基本过程
1)创建XMLHttpRequest对象
2)请求发起前的一些处理逻辑
3)open() 设置method/async/url/其它参数,设置请求头等
4)send(data) 发送数据
5)success, error, alwarys callback...
6)timeout callback

post(url, data).success(function(res){}).error(function(){});

7、ajax封装,链式操作

ajax(options).before(callback(xhr))
      .header(name,value)
      .headers({headers})
      .get|post|other(url,[data],[contentType])
      .success(callback(res,xhr), [jsonForceValidate=false])
      .error(callback(statusCode,responseText,xhr))
      .alwarys(callback(statusCode,responseText,xhr))
      .timeout(timeout,[callback(xhr)]);
上一篇 下一篇

猜你喜欢

热点阅读