仅在第一个请求完成后才允许另一个相同的ajax请求

时间:2012-11-20 03:53:19

标签: ajax asynchronous

我正在使用prototype.js并拥有如下代码。

            new Ajax.Request('url', {
            asynchronous: true,
            method: "get",
            onSuccess: Succeeded,
            onFailure: Error
        });

如果第一个请求'完成并且下一个相同的请求已发出,则会出现问题。

除非调用'Succeeded',否则如何防止发出相同网址的请求?

当然,我可以通过更改'asynchronous:false'来解决问题,但是可能异步方法仍适用于这种情况吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

我总是使用异步请求,因为同步请求很少是你想要的。

我很好奇为什么同一个请求可以多次完成。通常我只是在错误回调中重复请求并在成功回调中发出成功信号。我使用中止超时,所以我不会永远等待(默认HTTP超时通常是2分钟)。

如果请求是用户启动的,因此可能不止一次发生,您必须手动执行此检查(在某处设置“inProgress”布尔值)。