AJAX准备状态的不同阶段和过程是什么
在这篇文章中,我们将看到AJAX-ready状态所涉及的不同阶段和过程,以及通过插图了解其重要性和基本用法。异步JavaScript和XML(AJAX)可用于与服务器通信,而无需重新加载网页,因此它有助于获得更好的用户体验。为了与服务器互动,可以使用_XMLHTTPRequest对象来执行所需的AJAX操作,这些是浏览器级别的API。服务器和客户端的请求是由Javascript来处理的。
ready是一个XMLHTTPRequest属性,它持有或可以返回当前存在于其中的XMLHTTPRequest客户端的状态。简单地说,一个请求将使用XMLHttpRequest对象向服务器发出,它经历了一个变化周期&反过来,返回响应。XMLHttpRequest只在readyState的帮助下跟踪所发出的请求,它定义了相应的XMLHttpRequest对象的当前状态。”onreadystatechange” 属性有助于触发 readyState 的变化。在处理请求时,有4种不同的准备状态是可能的。
不同的AJAX readyStates:
- 当一个请求被发送时,在到达服务器时,有很多可能性请求会被中断。如果它没有被破坏,并且连接成功,意味着状态将变成1。
- 当服务器收到请求时,读取状态变为2。
- 在处理该请求的同时,状态被改为3。
- 当请求完成后,状态被改为4。
AJAX就绪状态下的不同阶段和过程:
States | readyState Values | Explanation |
---|---|---|
UNSENT | 0 | 该请求还没有被初始化。所以最初的readyState是0。 |
OPENED | 1 | 当一个open()方法被调用时,连接正在建立,因此状态变为1。 |
HEADERS_RECEIVED | 2 | 当send()方法被调用时,请求被接收,因此状态变为2,头文件和状态将相应地被提供。 |
LOADING | 3 | 在处理请求的过程中,将进行下载,响应文本携带部分数据,状态将变为3。 |
DONE | 4 | 当请求处理完毕,即将交付响应时,则状态变为4。 |
在读取状态4期间,我们需要检查请求对象的状态,即当状态代码为200时,我们将得到一个成功的响应。
不同的StatusCode描述(一旦准备状态来到4):
Status | 解释 |
---|---|
200 | 好的。响应的可用性将是完美的,我们可以通过使用responseText接收整个输出。 |
201 | 请求成功,一个新的资源被创建。 |
202-298 | 对于每一个状态代码,都有一些行为的变化,如无内容、部分内容等。 |
我们将通过实例了解所有这些概念。
例子1:在这个例子中,我们假设要检索一个服务器上的文件,它可能是一个图像或任何文本文件,但只在同一个服务器上可用。如果该文件意外地被放错地方或损坏,那么我们将得到一个不同的读取状态,我们也不会得到一个响应。
在这里,我们将尝试打开”readyStatedetails.jsp“文件,该文件将在”readyStateExample.html“所在的同一位置。如果这个文件被误放或意外损坏,在这种情况下,它在服务器上是不可用的。
readyState示例.html:
解释:当连接被打开时,readyState被改变为1。当send()方法被调用时,readyState被改变为2,并开始处理请求,readyState被改变为3,并试图完成请求并开始通过readyState 4提供响应。这时,如果所请求的文件在同一服务器上不可用,即使readyState变成了4,那么它的状态也不可能是200(OK),这意味着,所请求的操作没有完全完成,因此不可能产生响应。
注意:我们将假设服务器中没有readyStatedetails.jsp文件。
输出:由于请求的文件不在服务器上,状态变为404,这意味着它在服务器上不可用。
例子2:在这个例子中,我们假设readyStatedetails.jsp在服务器中可用。在这里,我们将使用同样的readyExample.html文件来观察所出现的变化。
readyStatedetails.jsp:
输出:
结论: readyState值对于了解请求资源的输出或ajax调用的输出真的很有帮助。如果我们得到一个响应,那么请求可能已经完成,readyState值为4,响应为200(OK),因此在输出中,我们可以看到适当的响应。我们也可以通过处理异常来处理这些问题。