如何杀死.net webservice的javascript异步调用?

时间:2010-06-14 19:34:07

标签: asp.net javascript ajax

我的javascript代码正在调用asp.net webservice,所以我调用了这样的webservice:

MyWebservice.GetData(param,ResponseReceived,ResponseTimeOut,ResponseError);

当webservice返回数据时,将调用ResponseReceived方法。

然而,有时用户可能会在webservice调用实际返回之前导航到另一个url,在这种情况下,FireFox会抛出一个错误,指出'发生了错误oricessubg请求。服务器方法GetData失败'

所以我的问题是,当用户导航到另一个页面或向Web服务发出另一个请求时,我怎么能杀死异步调用?我知道在普通的XMLHttpRequest中我可以调用Abort方法,但不知道如何使它与上述webservice代理一起工作。

2 个答案:

答案 0 :(得分:1)

一个好的做法是将您的常用功能保存在一个可以从所有页面访问的公共位置。

这将包括OnError功能。这样您就可以安全地从所有页面引用相同的功能。如果需要提供自定义错误功能,可以在页面上覆盖此功能,或在公共功能中包含处理程序,如果已分配,则调用。

放置这种常用功能的好地方是在根母版页内,或从根母版页引用的共享JavaScript文件。

有什么好处,希望您的OnError函数可以进行一些日志记录,这样您就可以了解失败的频率和频率,以便您可以相应地设计应用程序。

答案 1 :(得分:0)

好的我找到了一个解决方案,我可以调用get_executor()方法来获取XmlHttpExecutor类的实例,我可以在其上调用abort方法。希望它可以帮助其他人面临类似的问题。

我仍然渴望找到其他解决方案。