jQuery的AJAX XMLHttpRequest对象的状态

在传统JavaScript AJAX,我们知道,如果readystate是:

  • 0 - 请求未初始化
  • 1-请求已成立
  • 2 - 请求已发送
  • 3 - 请求正在进行中
  • 4 - 请求完成。

当涉及到jQuery的AJAX,我们有:

  • complete财产,我们的代码完成后会发生什么
  • success物业,我们的代码,如果Ajax请求成功,应该发生什么
  • error性质,我们的代码,如果AJAX请求失败会发生什么。

上述所有特性让我们的代码Ajax请求完成后做一些事情。 我在哪里可以指定一些代码(当readyState为3)jQuery中的Ajax处理过程中执行的东西?

正如我的AJAX脚本需要太长的时间来执行,这意味着,我不会很快达到'完成'的阶段。 这似乎像什么也没发生给用户。 我想在开始处理阶段的另一个AJAX脚本从服务器获取同时信息和显示了迄今所做的用户。 是否有可能在所有的Javascript? 我知道有没有多线程在Javascript。

我觉得我做了我自己清楚。 但是,请让我知道如果有什么不作出任何意义。

--------------解决方案-------------

我通过启动第一长运行的请求,立即返回给用户,并允许该过程叉服务器端用于扩展处理处理这个问题。

该初始收益Ajax调用用户设置起来通过对对象的标志'看'这个过程(我将它们存储对数据库对象,但你可以例如看文件大小或其他的东西)

随后的Ajax调用发生在一个循环,每一个返回的setTimeout进行通话,并更改该标志报告,以便长时间运行过程的进度是那么明显。 长时间运行过程的完成提示不发送其他的setTimeout()和展示整体效果。

如果过程是不是密集的,简单的微调可能会做的工作,并为您的服务器过程中没有工作。 我通常的处理有$就翻转了的我在同一地点的所有网页预装了“微调”图标的可视性。

据jQuery的阿贾克斯机制的文档,他们不暴露readyState的改变事件:

没有提供的onreadystatechange机构,然而,由于成功,错误,完全和的StatusCode涵盖所有可想到的要求。

这将有可能显示加载图像的初始Ajax请求被踢掉(和得到任何“​​完全”或“成功”事件之前之后,再开始投票通过ajax不同的URL,这将给你的第一个请求的状态假设您的服务器可以显示的漫长过程的进度完成之前。

分类:JavaScript的 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.380 (s). 10 q(s)