`
liyixing1
  • 浏览: 962095 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

ajax状态

 
阅读更多
• HTTP 就绪状态 readyState
• HTTP 状态代码
• 可以生成的请求类型


HTTP 就绪状态
function updatePage() {
   if (request.readyState == 4) {
     if (request.status == 200) {
       var response = request.responseText.split("|");
       document.getElementById("order").value = response[0];
       document.getElementById("address").innerHTML =
         response[1].replace(/\n/g, "<br />");
     } else
       alert("status is " + request.status);
   }
}

这显然是就绪状态最常见(也是最简单)的用法。正如您从数字 "4" 中可以看出的一样,还有其他几个就绪状态


• 0:请求未初始化(还没有调用 open())。
• 1:请求已经建立,但是还没有发送(还没有调用 send())。
• 2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
• 3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。
• 4:响应已完成;您可以获取并使用服务器的响应了。


第一种就绪状态的特点是 readyState 属性为 0(readyState == 0),表示未初始化状态。一旦对请求对象调用 open() 之后,这个属性就被设置为 1。由于您通常都是在一对请求进行初始化之后就立即调用 open(),因此很少会看到 readyState == 0 的状态。另外,未初始化的就绪状态在实际的应用程序中是没有真正的用处的。


浏览器的不一致性

• 1
• 2
• 3
• 4
这并不奇怪,因为每个请求状态都在这里表示出来了。然而,如果您使用 Safari 来访问相同的应用程序,就应该看到 —— 或者看不到 —— 一些有趣的事情。下面是在 Safari 2.0.1 中看到的状态:
• 2
• 3
• 4


Safari 实际上把第一个就绪状态给丢弃了,也并没有什么明显的原因说明为什么要这样做;不过这就是 Safari 的工作方式。这还说明了一个重要的问题:尽管在使用服务器上的数据之前确保请求的状态为 4 是一个好主意,但是依赖于每个过渡期就绪状态编写的代码的确会在不同的浏览器上得到不同的结果。
例如,在使用 Opera 8.5 时,所显示的就绪状态情况就更加糟糕了:
• 3
• 4
最后,Internet Explorer 会显示如下状态:
• 1
• 2
• 3
• 4
如果您碰到请求方面的问题,这就是用来发现问题的 首要之处。最好的方式是在 Internet Explorer 和 Firefox 都进行一下测试 —— 您会看到所有这 4 种状态,并可以检查请求的每个状态所处的情况。
接下来我们再来看一下响应端的情况。


HTTP 状态代码

有了就绪状态和您在 Ajax 编程技术中学习到的服务器的响应,您就可以为 Ajax 应用程序添加另外一级复杂性了 —— 这要使用 HTTP 状态代码。这些代码对于 Ajax 来说并没有什么新鲜。从 Web 出现以来,它们就已经存在了。在 Web 浏览器中您可能已经看到过几个状态代码:
• 401:未经授权
• 403:禁止
• 404:没找到
您可以找到更多的状态代码(完整清单请参见 参考资料)。要为 Ajax 应用程序另外添加一层控制和响应(以及更为健壮的错误处理)机制,您需要适当地查看请求和响应中的状态代码。
200:一切正常
在很多 Ajax 应用程序中,您将看到一个回调函数,它负责检查就绪状态,然后继续利用从服务器响应中返回的数据
分享到:
评论

相关推荐

    Ajax状态值详解

    总之,理解Ajax状态值是开发高效、流畅的Web应用的关键。通过监控`readyState`和`status`,我们可以准确地知道请求的进度和结果,从而及时反馈给用户,提升用户体验。在实际开发中,应根据需求选择合适的Ajax库或API...

    Ajax状态值

    Ajax状态值反映了Ajax请求的不同阶段。这些状态值是通过`ajax.readyState`属性获取的,共分为5个阶段: 1. **0 - 未初始化**:Ajax对象已经创建,但`send()`方法还未被调用。 2. **1 - 载入**:`send()`方法已被...

    jQuery 制作一个Ajax带状态提示的登录按钮

    为了实现Ajax状态提示,我们可以添加一个额外的元素,如一个`&lt;span&gt;`,用于显示状态信息: ```html 用户名" /&gt; 密码" /&gt; 登录 &lt;span id="status"&gt;&lt;/span&gt; ``` 接下来,我们需要编写jQuery代码来监听登录按钮...

    Ajax参考手册 很好的教材

    2. 后退按钮问题:由于页面没有真正刷新,使用后退按钮可能无法回到之前的Ajax状态。 3. SEO难题:搜索引擎爬虫无法执行JavaScript,可能无法正确抓取Ajax加载的内容。 **Ajax的应用场景** 1. 表单验证:实时验证...

    快速解决ajax请求出错状态码为0的问题

    今天在使用 ajax 向后台请求数据时出现错误,提示状态码为 0 ,后台采用的是 spring mvc 架构。 状态码为0是什么意思呢?查找了下,原来它意味着 (未初始化)即没有调用到send()方法,我原来代码如下 : $.ajax...

    AJAX应用笔记(1)

    - 后退按钮问题:如果不妥善处理,用户点击后退可能无法回到之前的AJAX状态。 6. **现代框架中的AJAX** - 当前,许多前端框架(如jQuery、Vue.js、React.js)提供了更高级的API来简化AJAX操作,如jQuery的`$.ajax...

    ajax ppt 6

    3. **深链接**:为了支持邮件分享和搜索引擎的抓取,应用需要确保每个Ajax状态都有一个唯一的URL。这样,即使页面是通过Ajax加载的,外部链接也能直接指向页面的特定内容。 4. **刷新按钮**:在Ajax应用中,当用户...

    Ajax中文手册.chm.rar

    - 用户体验:尽管Ajax可以提升用户体验,但也可能导致页面状态混乱,如果用户刷新页面,可能无法回退到之前的Ajax状态。因此,需要正确处理浏览器的前进/后退按钮,并考虑提供清晰的反馈,让用户了解当前的请求状态...

    无状态聊天(ajax)

    无状态聊天(Ajax)是一种基于Web的技术,它允许在不刷新整个页面的情况下更新部分网页内容。这个技术的核心是Ajax(Asynchronous JavaScript and XML),虽然名字里有XML,但实际应用中并不局限于XML,而是可以使用...

    AJAX帮助文档

    3. 前进后退问题:如果不妥善处理,用户在浏览器的前进后退操作可能无法正确恢复AJAX状态。 七、AJAX开发 1. AJAX应用到的技术: - XMLHttpRequest对象:是实现AJAX的核心,负责与服务器进行异步通信。 - ...

    解决AJAX返回状态200没有调用success的问题

    然而,在实际操作中,我们可能会遇到一些问题,比如AJAX请求返回状态码为200,但是却无法正常调用success回调函数。这个问题通常涉及到数据类型处理、HTTP响应头以及前端与后端的交互方式。 首先,我们需要理解AJAX...

    ajax ajax原理 ajax代码 ajax编程 ajax学习

    4. **监听状态变化**:通过`onreadystatechange`事件处理函数监听请求状态。当`readyState`属性值为4时,表示请求已完成。 5. **接收响应**:如果`status`属性值为200,表示请求成功,可以使用`responseText`或`...

    jquery ajax实例点击按钮触发Ajax loading

    在上述代码中,`id="ajaxButton"`是我们的触发按钮,而`id="loadingIndicator"`则是用于显示加载指示器的元素,初始状态为隐藏。 现在,编写JavaScript代码来处理按钮点击事件,并执行AJAX请求: ```javascript $...

    Ajax Ajax本质 Ajax本质源码

    开发者可以注册这些事件的回调函数,以便在合适的时候执行相应的操作,例如检查readyState和status属性,确定请求的状态和成功与否。 3. **服务器响应**:服务器接收到请求后,处理请求并返回数据,通常是XML、JSON...

    Ajax 网页加载等待状态插件

    "Ajax 网页加载等待状态插件"通常是为了在Ajax请求处理期间向用户显示一个等待指示器,告知用户后台正在处理数据,避免用户感到界面卡顿或无响应。这种插件对于提升用户体验至关重要,因为它可以减少用户的焦虑感,...

    Ajax简介Ajax.API

    Ajax 简介和 Ajax API Ajax 简介 Ajax 是“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML)的缩写词,但事实上,Ajax 并非缩写词,而是由 Jesse James Gaiett 创造的名词。Ajax 是一种创建交互式...

Global site tag (gtag.js) - Google Analytics