在Dojo取消服务电话

时间:2013-01-04 08:10:50

标签: web-services dojo

我想知道是否可以使用Dojo取消对Web服务的调用。我的问题是,例如,用户在地图中有许多元素要选择,并且每当他点击其中一个时,就会调用对web服务的调用以带来大量数据。此操作需要几秒钟的延迟。想象一下,用户几乎同时点击了五个元素:将会有一个选定的元素(最后一次点击),但信息面板将定期刷新,点击之前元素的信息,直到加载最后一个元素信息。

我想要的是取消之前的所有通话(如果可能),只允许完成最后一次通话。我正在使用Dojo。我见过文档,但我没有看到任何有用的东西。像“ajax.abort()”这样的方法就是我期望找到的。

我还想过创建一个类来管理调用并在每次调用同一个url时添加到队列中,以便只允许最后一次调用来呈现数据,但是通过这种方式,我仍然要等待完成每次服务电话然后丢弃结果。我认为正确的方法是取消旧电话。

有什么建议吗?感谢。

1 个答案:

答案 0 :(得分:0)

在某些论坛和网页上搜索后,我发现了这个:www.mike-griffith.com - Cancel dojo XHR in progress。这正是我所寻找的(尽管在Web示例中用于“GET”服务,“cancel()”方法也适用于“POST”调用)。

因此,我将服务调用管理器与此代码组合以取消具有相同网址的调用。我还必须管理如何在取消呼叫时避免(如果我能够)引发的错误,但这是其他任务而不是优先级。