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. ubuntu 卡在 输入密码的界面 无法进入的解决办法
  2. 防灾科技学院期末软件测试,防灾科技学院2014 软件测试客观题
  3. 粒子群算法(PSO)Matlab实现(两种解法)
  4. linux小红帽实验心得,格林童话小红帽读书心得体会5篇
  5. android scrollview 底部控件,Android ScrollView和屏幕底部的按钮
  6. 2020新时尚之都指数报告
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的驾校预约信息管理系统
  8. 【干货】普华永道:新形势下,企业如何进行数字化转型.pdf(附下载链接)
  9. 电脑怎么测试硬盘的读写速度_电脑硬盘这麽多到底该怎么选?硬盘的各类分类你知道吗...
  10. 性能比 GPU 高 100 倍!首款可编程忆阻器 AI 计算机面世
  11. 什么情况下不应该使用深度学习?
  12. (原创)倾情奉献由测试兵团整理的cmh格式测试管理资料
  13. wireshark基本用法及过虑规则
  14. 关于web页面中mata各种标签的解释
  15. wpewebkit在ubuntu18.04上编译配置
  16. 文件后缀对应文件类型表
  17. Ember 工程基本配置
  18. unity3d让模型不受3dCamera FOV的影响
  19. 3Idiots-2014-Kaggle 比赛源码走读
  20. PySide2学习总结(十二)打开文件对话框--FileDialog

热门文章

  1. adb命令打开手机设置页面
  2. 北大计算机学霸,国内大学“最牛的”一个班级,门槛极高,一般学霸根本进不去...
  3. 手机与计算机通过FTP服务器进行相互通信
  4. Win10鼠标拖拽移动文件
  5. Photoshop里标注UI尺寸的工具
  6. gp数据库月份第一天_社会数据科学的第一天
  7. 分布光度计的使用随记
  8. Tableau学习Step6一如何制作炫彩地图
  9. 如何进行图片在线翻译
  10. QA for Install Oracle 11G Release 2 on Centos Linux 7