💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# ajax简介 AJAX 即 “Asynchronous JavaScript and XML”(异步的 JavaScript 与 XML 技术),指的是一套综合了多项技术的浏览器端网页开发技术。AJAX 的概念由 Jesse James Garrett 所提出,说白了**就可以使用 JavaScript 代码发送网络请求并处理响应,由浏览器实现**。 传统的 Web 应用允许用户端填写表单(form),当提交表单时就向网页服务器发送一个请求。服务器接收并处理传来的表单,然后送回一个新的网页,但这个做法浪费了许多带宽,因为在前后两个页面中的大部分 HTML 码往往是相同的。由于每次应用的沟通都需要向服务器发送请求,应用的回应时间依赖于服务器的回应时间。这导致了用户界面的回应比本机应用慢得多。 与此不同,AJAX 应用可以仅向服务器发送并取回必须的数据,并在客户端采用 JavaScript 处理来自服务器的回应。因为在服务器和浏览器之间交换的数据大量减少,服务器回应更快了。同时,很多的处理工作可以在发出请求的客户端机器上完成,因此 Web 服务器的负荷也减少了。 # AJAX 为什么要使用它, 它的特点, 本质是什么 提供网络传输效率, 减轻服务器压力, 增加用户体验性 ​ 异步局部刷新 ​ 使用 JS 代码发送请求并处理响应, 运行浏览器环境下 ​ 验证用户是否存在, 发送短信验证码等等 # 使用 AJAX 发送请求 ## 代码步骤 * 创建 AJAX 对象; * 设置请求路径,请求方式等; * 绑定监听状态改变的处理函数,在处理函数可获取响应数据; * 发送请求。 ## 兼容性问题 ~~~ function createAjax() {    var ajax;    try {       // 非 IE        ajax = new XMLHttpRequest();   }    catch (e) { // IE        ajax = new ActiveXObject('Microsoft.XMLHTTP');   }    return ajax; } ~~~ ## 响应处理 响应处理,即对服务响应回浏览器的数据根据状态码和 AJAX 对象的状态信息进行不同的处理,在绑定状态改变的处理函数中写对应的逻辑代码即可。 AJAX 对象有 4 个属性: * readyState 总共有 5 个状态值,分别为 0 ~ 4,每个值代表了不同的含义: * 0:初始化,AJAX 对象还没有完成初始化 * 1:载入,AJAX 对象开始发送请求 * 2:载入完成,AJAX 对象的请求发送完成 * 3:解析,AJAX 对象开始读取服务器的响应 * 4:完成,AJAX 对象读取服务器响应结束 * status 表示响应的 HTTP 状态码,常见状态码如下: * 200:成功 * 302:重定向 * 404:找不到资源 * 500:服务端错误 * responseText 获得字符串形式的响应数据。 * responseXML 获得 XML 形式的响应数据。 综合以上,在状态改变的处理函数一般针对 readyState == 4 且 status == 200 的情况才处理,再根据后台返回的数据类型决定从 responseText 或者 responseXML 获取服务器响应回去来的数据。