Вопрос

Есть ли способ отменить/прервать запросы на заводские запросы? Использование GWT 2.3

Это было полезно?

Решение

Другой вариант - создать альтернативу com.google.web.bindery.requestfactory.shared.RequestTransport Тип, вместо использования DefaultRequestTransport. Анкет Недостатком этого (и ростом подхода Bobv) является то, что вы не узнаете, когда в запросе на сервере вы его убиваете, так что он мог бы уже запустить некоторые из ваших методов - вы не получите отзывы от ни одного из них, Вы просто остановите исходящий запрос.

Я подозреваю, что именно поэтому у RF нет этой функции, как это делает RPC. Рассмотрим даже случай RPC, хотя или requestBuilder - как те, кто уведомит сервер, который они изменили свое мнение, и не запускать запрос? Насколько я понимаю, они этого не делают - единственный способ, которым они выключаются рано, - это когда они пытаются читать/написать в ответ, и получить ошибку TCP, так как соединение было закрыто. (Возможно, я ошибаюсь, и что другая нить следит за состоянием соединения TCP и вызовов thread.stop(Throwable), но остановка устарела для какое-то время.)

Одна из мыслей - отправить сообщение на сервер, что заявило ему убить другие запросы из того же сеанса - это потребует активного участия в коде вашего сервера, возможно, сделано общим в ServiceLayerDecorator подтип, вероятно, по крайней мере в invoke, loadDomainObject(s), а также getSetter, среди других. Это довольно ясно, чтобы вовлечь, чтобы попросить GWT построить его для вас, хотя ...

Другие советы

Невозможно отменить запрос после fire() Метод был вызван. Подумайте о создании обычая Receiver базовый класс, такой как следующее:

public abstract class CancelableReceiver<V> extends Receiver<V> {
  private boolean canceled;

  public void cancel() {
    canceled = true;
  }

  @Override
  public final void onSuccess(V response) {
    if (!canceled) {
      doOnSuccess(response);
    }
  }

  protected abstract void doOnSuccess(V response);
}

Шаблон может быть повторен для других методов в Receiver тип.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top