Wicket ruft eine langwierige Operation auf und aktualisiert sie über Ajax

Basierend aufSO FrageIch bin zu dem Schluss gekommen, dass Wicket nachfolgende AJAX-Anfragen in die Warteschlange stellt. Jetzt ist meine Seite mit mehreren AJAX-Anfragen übersät und ich möchte noch eine hinzufügen, die eine lange Operation hervorruft.

public void populateItem(final Item item) {
  final MyObject object = (MyObject) item.getModelObject();
  // ... a couple of fields
  Label statusLabel = new Label("status", new AbstractReadOnlyModel() {
    @Override
    public Object getObject() {
      return someService.doSomeLengthyOperation();
    }
  });
  statusLabel.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(5)));
  item.add(statusLabel)
}

Sobald diese Ajax-Anforderung ausgelöst wird, kann es bis zu einer Minute dauern, bis die Ausführung abgeschlossen ist. Das Problem hier ist dassomeService.doSomeLengthyOperation() wird durchgeführtn times the number of rows dass ich habe, das heißt, ich werde Schlange stehenn times two-minutes. Wie bereits erwähnt, stellt Wicket nachfolgende AJAX-Anforderungen in die Warteschlange.

Was passiert, ist, dass es mich brauchtnumber-of-rows * minutes-it-take-to-finish-the-operation um die Seite zu laden oder andere Dinge zu tun, die AJAX erfordern, wie

new AjaxButton("ajax-button"){
  @Override
  protected void onSubmit(AjaxRequestTarget target, Form form) {
    //.. this won't be executed until all the statusLabels have finished invoking getObject()
  }
}

Ich möchte vermeiden, einen Webdienst zu erstellen, der meinen Dienst verfügbar macht und meine eigenen AJAX-Aufrufe schreiben muss. Welche Möglichkeiten habe ich? (Mit Wicket 1.5 / Pax-Wicket)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage