AJAX——AJAX相关知识点汇总

发布于:2023-01-01 ⋅ 阅读:(404) ⋅ 点赞:(0)

文章目录

  • 前言
  • AJAX 是什么
  • 二、AJAX 如何工作?
  • AJAX 基于因特网标准
  • 四、AJAX应用
  • 创建 XMLHttpRequest 对象
  • 发送请求
    • 6.1 向服务器发送请求
    • 6.2 GET 还是 POST?
  • AJAX - 服务器 响应
    • 7.1 服务器响应
    • 7.2 responseText 属性
    • 7.3 responseXML 属性
  • AJAX - onreadystatechange 事件
    • 8.1 onreadystatechange 事件
  • 总结

一、AJAX 是什么?

  • AJAX = Asynchronous JavaScript and XML.
  • AJAX 是一种用于创建快速动态网页的技术。
  • AJAX 通过在后台与服务器进行少量数据交换,使网页实现异步更新。这意味着可以在不重载整个页面的情况下,对网页的某些部分进行更新。
  • 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个页面。
  • AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行

二、AJAX 如何工作?

三、AJAX 基于因特网标准

  • XMLHttpRequest 对象(与服务器异步交互数据)
  • JavaScript/DOM(显示/取回信息)
  • CSS(设置数据的样式)
  • XML(常用作数据传输的格式)

四、AJAX应用

  • 运用 XHTML+CSS 来表达资讯;
  • 运用 JavaScript 操作 DOM(Document Object Model)来执行动态效果;
  • 运用 XML 和 XSLT 操作资料;
  • 运用 XMLHttpRequest 或新的 Fetch API 与网页服务器进行异步资料交换;

五、创建 XMLHttpRequest 对象

创建 XMLHttpRequest 对象的语法:——    variable=new XMLHttpRequest();

六、发送请求

XMLHttpRequest 对象用于和服务器交换数据。

6.1 向服务器发送请求

如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open()  send() 方法:
方法
 描述
open(method,url,async)
规定请求的类型、URL 以及是否异步处理请求。
  • method:请求的类型;GET 或 POST
  • url:文件在服务器上的位置
  • async:true(异步)或 false(同步)
send(string)
将请求发送到服务器。
  • string:仅用于 POST 请求

6.2 GET 还是 POST?

与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。

然而,在以下情况中,请使用 POST 请求:

  • 不愿使用缓存文件(更新服务器上的文件或数据库)
  • 向服务器发送大量数据(POST 没有数据量限制)
  • 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

GET请求示例

xmlhttp.open("GET","/try/ajax/demo_get2.php?fname=Henry&lname=Ford",true);
xmlhttp.send();

POST请求示例

xmlhttp.open("POST","/try/ajax/demo_post2.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");
方法
描述
setRequestHeader(header,value)
向请求添加 HTTP 头。
  • header: 规定头的名称
  • value: 规定头的值

七、AJAX - 服务器 响应

7.1 服务器响应

如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。
属性
描述
responseText
获得字符串形式的响应数据。
responseXML
获得 XML 形式的响应数据。

7.2 responseText 属性

如果来自服务器的响应并非 XML,请使用 responseText 属性。responseText 属性返回字符串形式的响应,
例如——可将responseText属性赋值为某个节点的文本属性
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

7.3 responseXML 属性

如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,请使用 responseXML 属性:
代码示例——
xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
{
    txt=txt + x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("myDiv").innerHTML=txt;

八、AJAX - onreadystatechange 事件

8.1 onreadystatechange 事件

当请求被发送到服务器时,我们需要执行一些基于响应的任务。 每当 readyState 改变时,就会触发 onreadystatechange 事件。 readyState 属性存有 XMLHttpRequest 的状态信息。
下面是 XMLHttpRequest 对象的三个重要的属性:
属性
描述
onreadystatechange
存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
readyState
存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
  • 0: 请求未初始化
  • 1: 服务器连接已建立
  • 2: 请求已接收
  • 3: 请求处理中
  • 4: 请求已完成,且响应已就绪
status
200: "OK"
404: 未找到页面
在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。
当 readyState 等于 4 且状态为 200 时,表示响应已就绪:
xmlhttp.onreadystatechange=function() {
 if (xmlhttp.readyState==4 && xmlhttp.status==200) { 

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

 } 
}

总结

好了,就此停笔吧,最后依旧诚挚祝福屏幕前的你健康幸福、平安喜乐。


网站公告

今日签到

点亮在社区的每一天
去签到