Web服务——异步执行和状态更新

Web Service - Asynchroneous execution and status updates

本文关键字:状态 更新 异步 服务 Web 执行      更新时间:2023-09-26

我正在尝试开发一个使用Javascript和SOAP调用的web服务。它是一个有状态的服务,用户可以在一定时间内登录,因此我使用Context。会话来存储必要的数据。用户调用一个冗长的操作(在登录之后),并且需要接收定期的状态更新。我遇到的问题是,我的服务的行为方式是一次只能执行一个调用(即WebMethod a()),并且在a()完成执行之前我不能调用WebMethod B()。有两个问题:接收状态更新的最佳方法是什么——服务器可以自动回发数据到客户端,还是最好轮询GetStatus服务方法?我如何才能实现异步。执行内部的web服务,以便我可以调用不同的,有时完全不相关的web方法从相同的web服务?谢谢!

使用JQuery可以这样做:

function CallMethodA() {
        $.ajax({
            type: "POST",
            url: "WebService.asmx/MethodA",
            // whatever else ...
            success: function (response) {
                //handle success
            }
        });
    CallMethodB();
}

function CallMethodB() {
        $.ajax({
            type: "POST",
            url: "WebService.asmx/MethodB",
            // whatever else ...
            success: function (response) {
                //handle success
            }
        });
    }

JQuery中的Ajax请求默认是异步的