代码之家  ›  专栏  ›  技术社区  ›  ace

如何终止对.NET Web服务的javascript异步调用?

  •  1
  • ace  · 技术社区  · 14 年前

    我的javascript代码正在调用ASP.NET WebService,因此我有一个对WebService的调用,如下所示:

    myWebService.getData(参数,响应接收,响应超时,响应错误);

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

    但是,有时用户可能会在WebService调用实际返回之前导航到另一个URL,在这种情况下,Firefox会抛出一个错误,说明“提交请求时发生了错误”。服务器方法GetData失败'

    所以我的问题是,当用户导航到另一个页面或向WebService发出另一个请求时,如何终止异步调用?我知道在一个普通的xmlhttpRequest中,我可以调用abort方法,但不确定如何使它与上面的WebService代理一起工作。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Brock Adams    14 年前

    一个好的实践是将您的公共函数保存在一个公共位置,可以从所有页面访问该位置。

    这包括 OnError 功能。这样,您就可以从所有页面安全地引用相同的函数。如果需要提供自定义错误功能,可以在页面上重写此函数,或者在公共函数中包含一个处理程序,并在分配该函数时调用。

    放置这种公共函数的好地方是在根母版页内,或者在根母版页引用的共享javascript文件内。

    这有什么好处,希望你 出错 函数会进行一些日志记录,这样您就可以了解失败的内容以及失败的频率,从而相应地设计应用程序。

        2
  •  0
  •   ace    14 年前

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

    我仍然渴望找到其他的解决办法。