1、什么是AJAX?

AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。
使用XHTML+CSS来标准化呈现;
使用XML和XSLT进行数据交换及相关操作;
使用XMLHttpRequest对象与Web服务器进行异步数据通信;
使用Javascript操作Document Object Model进行动态显示及交互;
使用JavaScript绑定和处理所有数据。
这些能提供富用户体验。完全的 AJAX应用给人以桌面应用的感觉。

2、为什么要使用Ajax?

它可以在不刷新整个页面的情况下与服务器通信保持原有页面状态。

3、AJAX的工作原理

Ajax工作原理其实就是在一个页面的指定位置可以加载另一个页面中所有的输出内容。这样就实现了一个静态页面获取到数据库中所返回的数据信息了。根据这样的原理所以Ajax实现了静态页面在不刷新整个页面的情况下与服务器通信。

4、AJAX 工作原理

Ajax通过XmlHttpRequest对象来向服务器发出异步请求,从服务器获得数据,然后用Javascript来操作DOM而更新页面。
①创建Ajax对象(XmlHttpRequest)

var xhr = new XMLHttpRequest();

②判断数据的传输方式(get/post)

/**type  请求方式* url  请求路径* data 传递的参数  要求 : 必须是key=value 如果是多个参数 key1=value1&key2=value2*/
function ajax(type,url, data) {var xhr = new XMLHttpRequest();// 判断type是get还是post  // data1.php?name=jack&age=12if(type == "get") {url += "?" + data;}xhr.open(type, url);// 判断是否为post  如果是post请求 传参使用send方法传参 并且加请求头if(type  == "get") {xhr.send();} else {// 传参需要设置请求头xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");// 发送请求xhr.send(data);}// 不传参数时  get和post请求一样xhr.onreadystatechange = function() {if(xhr.readyState == 4 && xhr.status == 200) {console.log(xhr.responseText);}}

③设置请求头

       // 判断是否为post  如果是post请求 传参使用send方法传参 并且加请求头if(type  == "get") {xhr.send();} else {// 传参需要设置请求头xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");// 发送请求xhr.send(data);}

④发送请求 如果是post请求 并且需要向数据库传递数据 那么就在send方法里面进行传递

 /***type  请求方式* url  请求路径* data 传递的参数  要求 : 必须是key=value 如果是多个参数 key1=value1&key2=value2* success  接收一个函数 当响应体拿到之后 调用这格回到函数* dataType 传输一个数据类型(数据格式) 我们可以根据这个参数进行判断 做对应的处理*/function ajax(type,url, data, success, dataType) {var xhr = new XMLHttpRequest();// 判断type是get还是post  // data1.php?name=jack&age=12if(type == "get") {url += "?" + data;}xhr.open(type, url);// 判断是否为post  如果是post请求 传参使用send方法传参 并且加请求头if(type  == "get") {xhr.send();} else {// 传参需要设置请求头xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");// 发送请求xhr.send(data);}// 不传参数时  get和post请求一样

⑤监听响应完成事件

document.getElementById("btn1").onclick = function() {xhr.onreadystatechange = function() {if(xhr.readyState == 4 && xhr.status == 200) {// 不管什么时候 都是把响应体打印// console.log(xhr.responseText);// 说明你想对响应体做什么   通过这个函数传进来  然后在这里调用运行// success(xhr.responseText);// 先拿到响应体var res = xhr.responseText;if(params.dataType == "json") {res = JSON.parse(res);} else if(params.dataType == "XML") {// 对XML数据进行转换// 创建转换对象var parser = new DOMParser();res = parser.parseFromString(res, "text/xml");} else {res = xhr.responseText;}params.success(res);}}}

检测XMLHttpRequest对象的readyState属性,该属性表示请求/响应过程的当前活动阶段
0:未初始化。尚未调用open()方法

1:启动。已经调用open()方法,但尚未调用send()方法

2:发送。已经调用send()方法,但尚未接收到响应

3:接收。已经接收到部分响应数据

4: 完成。已经接收到全部响应数据。

5、AJAX的优点

①提高了性能和速度 减少客户端和服务器之间的流量传输,同时减少了双方响应的时间,响应更快,因此提高了性能和速度。
②交互性能好 可以开发更快,更具交互性的Web应用程序。
③异步调用 意味着客户端浏览器在开始渲染之前避免等待所有数据到达。
④使用XMLHttpRequest XMLHttpRequest在Ajax Web开发技术中起着重要作用。XMLHttpRequest是由Microsoft设计的特殊JavaScript对象。XMLHttpRequest对象调用作为异步HTTP请求到服务器以传输数据。它用于向非Ajax页面发出请求。
⑤拥有开源JavaScript库 : JQuery,Prototype,Scriptaculous等。
⑥AJAX通过HTTP协议进行通信

6、AJAX的缺点

①增加了设计和开发时间
②比构建经典Web应用程序更复杂
③AJAX应用程序中的安全性较低,因为所有文件都是在客户端下载的。
④可能出现网络延迟问题
⑤禁用JavaScript的浏览器无法使用该应用程序。
⑥由于安全限制,只能使用它来访问服务于初始页面的主机的信息。如果需要显示来自其他服务器的信息,则无法在AJAX中显示。

AJAX工作原理及其优缺点相关推荐

  1. AJAX工作原理及其优缺点 1.什么是AJAX? AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页

    参考文章:https://www.cnblogs.com/SanMaoSpace/archive/2013/06/15/3137180.html AJAX工作原理及其优缺点 1.什么是AJAX? AJ ...

  2. ajax简介跟优点讲解,简要总结ajax工作原理及优缺点

    虽然在实际的项目中使用多种ajax请求,但就其工作原理,优缺点尚未深入总结, 参考:http://www.cnblogs.com/SanMaoSpace/archive/2013/06/15/3137 ...

  3. 【java项目实践】具体解释Ajax工作原理以及实现异步验证username是否存在+源代码下载(java版)...

    一年前,从不知道Ajax是什么,伴随着不断的积累,到如今常常使用,逐渐有了深入的认识. 今天,假设想开发一个更加人性化,友好,无刷新,交互性更强的网页,那您的目标一定是Ajax. 介绍 在具体讨论Aj ...

  4. 【面试题】Ajax的原理和优缺点总结

    [面试题]Ajax的原理和优缺点总结 Ajax的原理 Ajax的原理简单来说就是通过XmlHttpRequest对象来向服务器发送异步请求,从服务器获得数据,然后用JavaScript来操作dom从而 ...

  5. Ajax的原理以及优缺点

    Ajax的原理以及优缺点 1.概念 Ajax全称"Asynchronous JavaScript and Xml"异步JavaScript和XML),是一门创建交互式网页的开发技术 ...

  6. Ajax工作原理和原生JS的ajax封装

    前言: 之所以用ajax作为博客的开篇,是因为无论从ajax的出现还是从它的作用上来说,ajax对于前端无疑是意义重大的.甚至可以说,是ajax带来了前端这个行业.当然,历史并不能说明当下,曾经的辉煌 ...

  7. 电阻触摸屏和电容触摸屏的工作原理及优缺点

    随着科技的发展使用需求的增长,触摸屏行业经历了从低档到高档逐步升级的过程,触摸技术已渗透到各行各业中.按照工作原理可以分为电阻触摸屏和电容触摸屏两大类.下面沐渥小编从二者的工作原理和优缺点出发,教大家 ...

  8. Lombok简介、使用、工作原理、优缺点(转载)

    文章转载:https://www.jianshu.com/p/453c379c94bd Lombok简介.使用.工作原理.优缺点 1.Lombok简介 官方介绍 Project Lombok is a ...

  9. 服务器ups后备式好还是在线式好,后备式UPS电源和在线式UPS工作原理和优缺点

    后备式UPS电源和在线式UPS工作原理和优缺点.目前市场上的UPS不间断电源主要分为两大类:在线式UPS电源与后备式UPS电源.我们在负载小功率设备的时候,如果设备本身对电能的要求不是很高的话,一般情 ...

最新文章

  1. 前戴尔EMC中国研究院院长创业:推出AI加速虚拟化平台,开发者可免费使用
  2. RESTful Web 服务 - 消息
  3. python绘制表格界面_python 读取 excel 生成 html 页面
  4. [转]自用类库整理之SqlHelper和MySqlHelper
  5. 剑指Offer - 面试题53 - II. 0~n-1中缺失的数字(二分、位运算)
  6. html如何做卷展菜单,3DMax“对象属性”卷展栏如何操作?有啥秘诀呢?
  7. 在线涂鸦画板小程序源码
  8. 云场景实践研究第37期:悦跑圈
  9. QT每日一练day13:QFileDialog文件浏览框
  10. 由数据库对sql的执行说JDBC的Statement和PreparedStatement
  11. ffmpeg 源代码简单分析 : av_read_frame()
  12. 【2019南昌邀请赛网络赛I:】Max Answer(st表+单调栈(新模版)+分析)
  13. 显卡对决nbsp;NVIDIAnbsp;GTnbsp;555Mnbsp;VS…
  14. 澳洲计算机科学专业,盘点澳洲八大名校那些最强的专业—计算机科学专业
  15. 中国程序员容易发错音的单词「GitHub 热点速览 v.22.23」
  16. python与会计学_财务与会计前沿讲座——“大数据集训”开讲
  17. 2021-07-06淘宝,天猫超市
  18. space_sniffer 清理 磁盘
  19. PP模块--MRP专题一:MRP基本逻辑
  20. 店宝宝:淘宝特价版直面拼多多靠的是什么?

热门文章

  1. Activity活动页面跳转与Android页面传值
  2. java抽奖概率抽奖
  3. 理解Word2vec
  4. coos字节点跟换父节点,retain用法
  5. [附源码]计算机毕业设计财务管理系统Springboot程序
  6. 使用python语言实现20以内的加减法生成
  7. 信号归一化功率_选择用于 850 nm 信号功率测量的检测器
  8. 【转载】前向和后向欧拉方法
  9. 如何使用Git提交代码
  10. 大型计算机 水冷,思聪排第二 2015年20大水冷定制机排名