дизайн асинхронного интерфейса с вызовом веб-сервиса - PullRequest
0 голосов
/ 28 июня 2010

Я пишу веб-приложение на Flex (SDK 3.5).
моя программа отправляет вызовы веб-службы асинхронно на сервер, который дает мне данные.
Я хочу обработать случай, когда пользователь отправляет несколько запросов, прежде чем ответы на предыдущие запросы
были даны ответы. В таком случае я хочу дать UI только последний ответ на запрос.
Это похоже на веб-страницу, где пользователь нажимает кнопку много раз. как показать только окончательный
ответ?
У меня есть идея сохранить последний идентификатор запроса в моем классе proxy / BusinessDelegate. а затем проверьте идентификатор токена, чтобы увидеть, идентичен ли он последнему идентификатору запроса. А затем я отправляю данные в интерфейс для отображения.
Что вы думаете об этой идее? У кого-нибудь есть идея получше?
спасибо,

Ответы [ 2 ]

1 голос
/ 28 июня 2010

Вот как я справляюсь с такой ситуацией

private var lastToken:AsyncToken;
public var service:RemoteObject;

public function makeRequest():void
{
    lastToken = service.doSomething();
    lastToken.addResponder(
        new AsyncResponder(handleResult, handleFault, lastToken)
    );
}

public function handleResult(result:Object, requestToken:Object):void
{
    if(requestToken !== lastToken) return;
    else
    {
        // handle result
    }
}

public function handleFault(fault:Object, requestToken:Object):void
{
    if(requestToken !== lastToken) return;
    else
    {
        // handle fault
    }
}
0 голосов
/ 28 июня 2010

Я думаю, что ваша идея - правильный подход, потому что так оно и есть! : -)

Я делаю это так же, как в ответе Райана, и я думаю, что ваша идея имеет то же направление. Классы Flex RPC используют тот же подход со свойством lastResult.

...