一、什么是Ajax

Ajax 的全称是 Asynchronous JavaScript and XML(即异步的 JavaScript 和 XML),是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术

二、Ajax的优缺点

1、优点:

  • 通过异步模式,提升了用户体验
  • 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
  • Ajax 引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载

2、缺点

  • 不支持浏览器back按钮
  • 安全问题,Ajax 暴露了与服务器交互的细节
  • 对搜索引擎的支持比较弱

三、Ajax 的使用 -- 实现步骤

1、创建 XMLHttpRequest 对象,即创建一个异步调用对象

var XHR;
if(window.XMLHttpRequest){
  XHR=new XMLHttpRequest(); //IE7+, Firefox, Chrome, Opera, Safari...
}else{
  XHR=new ActiveXObject("Microsoft.XMLHTTP"); //IE6,IE5

2、创建一个新的 HTTP 请求,并指定该 HTTP 请求的方法、URL 及验证信息

XHR.open(method,url,async);
// method:请求类型,GET 或 POST---------可选
// url:文件在服务器上的位置--------------必要参数
// async:true(异步)或 false(同步)----可选
// 以上参数使用时均要加上“”

3、设置响应 HTTP 请求状态变化的函数

XHR.onreadystatechange = function () {
//异步调用成功
if (XHR.readyState === 4) {
if ((XHR.status >= 200 && XHR.status < 300) || XHR.status === 304) {
//获得服务器返回的数据
data = JSON.parse(XHR.responseText);
// 渲染数据
renderDataToDom();
} else {
console.log('unsuccess');
}
}
};

4、发送 HTTP 请求

request.send();

5、获取异步调用返回的数据 (JSON

6、使用 JavaScript 和 DOM 实现局部刷新

四、Ajax中的一些处理总结

1、服务器响应处理

  • responseText:获得字符串形式的响应数据
  • responseXML:获得XML 形式的响应数据

2、同步处理

XHR.open("GET","demo_get.html",false);
XHR.send(); // 直接在 send() 后面处理返回来的数据
document.getElementById("target").innerHTML=XHR.responseText;

3、异步处理

异步处理相对比较麻烦,要在请求状态改变事件中处理

XHR.onreadystatechange=function(){     //接收到服务端响应时触发
if(XHR.readyState==4&&XHR.status==200){
document.getElementById("target").innerHTML=XHR.responseText;
}
}

下面是 XMLHttpRequest 对象的三个重要的属性

  • onreadystatechange:存储函数,每当 readyState 属性改变时,就会调用该函数
  • readyState:存有 XMLHttpRequest 的状态

0:请求未初始化

1:服务器连接已建立

2:请求已接收

3:请求处理中

4:请求已完成,且响应已就绪

  • XHR.status:表示响应状态码。比较常见的有:

200:“OK”(当 readyState 等于 4 且状态为 200 时,表示响应已就绪)

304:该资源在上次请求之后没有任何修改(这通常用于浏览器的缓存机制,使用GET请求时尤其需要注意)

403:(禁止) 服务器拒绝请求

404:(未找到) 服务器找不到请求的网页

408:(请求超时) 服务器等候请求时发生超时

500:(服务器内部错误) 服务器遇到错误,无法完成请求

Ajax 的简介与使用的更多相关文章

  1. AJAX(一)AJAX的简介和基础

    本节简介(异步链接服务器对象)XMLHTTPRequest以及AJAX的简介. AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML). AJ ...

  2. 掌握 Ajax,第 1 部分: Ajax 入门简介

    转:http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro1.html 掌握 Ajax,第 1 部分: Ajax 入门简介 理解 Ajax 及其工作 ...

  3. jQuery的AJAX方法简介及与其他文件$符号冲突的解决办法

    一.重要的jQuery AJAX方法简介 $.load(url) 从服务器载入数据 $.get(url,callback) 从服务器请求数据,并执行回调函数 $.post(url,data,callb ...

  4. ZK框架笔记1、ZK Ajax框架简介

    简介    ZK是一个基于事件驱动和组件的框架,他为web应用提供了丰富的接口.zk包括一个基于Ajax的事件驱动引擎.一整套丰富的XML用户接口语言(XML User Interface Langu ...

  5. Ajax(简介、基础操作、计算器,登录验证)

    Ajax简介 Ajax 即"Asynchronous Javascript And XML"(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术. ...

  6. AJAX的简介

    AJAX 指异步JavaScript及XML(Asynchronous JavaScript And XML(异步JavaScript和XML)),是指一种创建交互式网页应用的网页开发技术. 国内通常 ...

  7. AJAX技术简介

    AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 您应当具备的基础知识 在继续学习之前,您需要对下面的知识有基本的了解: HTML / XHTML CSS JavaScript ...

  8. ajax入门简介

    ajax的实现原理 ajax的定义是 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).它可以在不刷新页面的情况下提交请求与服务器进行交互动作 ...

  9. Ajax 用法简介

    使用Ajax实现页面的局部刷新 一.不依赖jquery时是这样的用法: var xhr=new XMLHttpRequest(); xhr.onreadystatechange=function(ev ...

随机推荐

  1. css 颜色混合模式 mix-blend-mode

    CSS3 新增了一个很有意思的属性 -- mix-blend-mode ,其中 mix 和 blend 的中文意译均为混合,那么这个属性的作用直译过来就是混合混合模式,当然,我们我们通常称之为混合模式 ...

  2. 12点睛Spring4.1-Spring Aware

    12.1 Aware 我们设计的准则是解耦,这就意味着我们不能对Spring的IoC容器有直接的依赖,但是我们还是想我们的bean能识别容器的资源; 使用aware能让我们在应用的任意位置获得spri ...

  3. 【ARTS】01_40_左耳听风-201900812~201900818

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  4. 【C/C++开发】malloc,calloc和realloc的区别和注意事项

    (1)C语言跟内存分配方式 <1>从静态存储区域分配.        内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量.static变量. <2&g ...

  5. tomcat配置SLL证书

    1.将jks证书复制到conf目录下 2.解除注释:88行至96行 修改代码 <Connector port="443" protocol="org.apache. ...

  6. vue-cli3 + ts 定义全局方法

    一.定义全局方法不生效  虽然在main.ts当中定义了全局方法,但是在使用的时候根本找不到,也是无语了. 二.解决方法 我在网上找了很多方法,其中很多大神都是这样做的:  但是,我这样写了还是不生效 ...

  7. 如何在Java中编写一个线程安全的方法?

    线程安全总是与多线程有关的,即一个线程访问或维护数据时遭到了其它线程的“破坏”,为了不被破坏,就要保持所维护变量的原子性: 1 局部变量总是线程安全的,因为每个线程都有自己的栈,而在方法中声明的变量都 ...

  8. Ajax基本概念

    一. Ajax 1. 什么是ajax Ajax: asynchronous  javascript  and  xml (异步js和xml) 其是可以与服务器进行(异步/同步)交互的技术一. ajax ...

  9. 【作业】Kitchen Plates(拓扑排序)

    题目链接:https://vjudge.net/contest/345791#problem/O [问题描述] You are given 5 different sizes of kitchen p ...

  10. 【leetcode算法-简单】7.整数反转

    [题目描述] 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321 示例 3: 输入: 12 ...