Web services 取消Dojo中的服务调用

Web services 取消Dojo中的服务调用,web-services,dojo,Web Services,Dojo,我想知道是否可以使用Dojo取消对Web服务的调用。我的问题是,例如,用户在地图中有许多元素可供选择,每次他单击其中一个元素时,就会执行对Web服务的调用,以带来大量数据。此操作需要几秒钟的延迟。假设用户几乎同时单击五个元素:将有一个选定的元素(上次单击的元素),但信息面板将定期刷新以前单击的元素的信息,直到加载最后一个元素信息 我想要的是取消以前的所有通话(如果可能的话),只允许完成最后一个通话。我和Dojo一起工作。我看过文档,但没有看到任何有用的东西。类似于“ajax.abort()”的方

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

我想要的是取消以前的所有通话(如果可能的话),只允许完成最后一个通话。我和Dojo一起工作。我看过文档,但没有看到任何有用的东西。类似于“ajax.abort()”的方法是我希望找到的

我还考虑创建一个类来管理调用,并将每个对同一url的调用添加到队列中,以便只让最后一个调用呈现数据,但通过这种方式,我仍然需要等待完成每个服务调用,然后放弃结果。我认为正确的方法是取消以前的电话


有什么建议吗?谢谢。

在一些论坛和页面中搜索后,我找到了这个:。这正是我想要的(虽然在web示例中用于“获取”服务,“cancel()”方法也适用于“POST”调用)


因此,我将结合服务呼叫管理器和此代码来取消使用相同url的呼叫。我还必须设法避免(如果我能做到的话)取消呼叫时引发的错误,但这是另一项任务,优先级要低得多。

您可能需要尝试并实现类似取消Bouncing()的功能,以减少中断的服务呼叫。@Buffalo感谢您的回复!我提出的解决方案效果不佳,因为有些调用在我管理它们之前就执行了它们的生命周期。我已经阅读了关于“去盎司”功能的链接,在对我的需求进行了一些调整之后,它似乎工作得很好!谢谢