在没有回调的情况下连续处理AJAX调用(如果可能)

时间:2012-11-25 05:09:15

标签: javascript ajax concurrency

我在Web应用程序中有一个函数,它调用AJAX来更新元素。我有其他使用此功能的函数,以及使用这些函数的其他函数。

假设我有一个进行AJAX调用的函数A.函数B调用函数A,函数C调用函数B。

现在假设我有函数D,这是另一个进行AJAX调用的函数。

我想调用函数C,然后调用函数D.问题是我遇到了一个问题,有时函数D正在使用从函数C调用返回的响应。所以我不希望函数D在从函数C的AJAX请求收到响应之前运行。

由于AJAX请求到目前为止发生在链(C> B> A),看起来像是一个让函数C接受回调,然后将该调用传递回B的黑客,它将该回调传递给这样A可以在收到对它的AJAX请求的响应之后调用该回调函数。

这实际上是最好的方法,还是可以更干净地完成?如果它有所作为,我更喜欢不使用任何额外库的解决方案(例如jQuery。)

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您想使用promise模式。

答案 1 :(得分:0)

如果使用PHP,可以将ajax事件绑定到元素而不是回调,使用像http://phery-php-ajax.net这样的库