Веб-сервис - асинхронное выполнение и обновления статуса - PullRequest
0 голосов
/ 08 сентября 2011

Я пытаюсь разработать веб-сервис, который вызывается с использованием Javascript и SOAP.Это служба с отслеживанием состояния, в которую пользователи могут войти в течение определенного времени, и поэтому я использую Context.Session для хранения необходимых данных.Пользователи вызывают длительную операцию (после входа в систему) и должны получать регулярные обновления статуса.Проблема, с которой я столкнулся, заключается в том, что мой сервис ведет себя так, что одновременно может быть выполнен только один вызов (т. Е. WebMethod A ()), и я не могу вызвать WebMethod B () до тех пор, пока A () не завершит выполнение.Есть два вопроса: Каков наилучший подход для получения обновлений статуса - может ли сервер автоматически пересылать данные клиенту или лучше вместо этого опрашивать метод сервиса GetStatus?Как я могу добиться асинхронности.выполнение ВНУТРИ веб-службы, чтобы я мог вызывать разные и иногда совершенно не связанные веб-методы из одного и того же веб-службы?Спасибо!

1 Ответ

0 голосов
/ 08 сентября 2011

Используя 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
            }
        });
    }

Ajax-запросы в JQuery по умолчанию асинхронны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...