onchange = "# {rich: component ('ds')}. switchToPage (this.value)"> в richfaces - PullRequest
0 голосов
/ 26 октября 2011

Я хочу добавить обработчик событий после завершения switchToPage.Я попытался

onchange="#{rich:component('ds')}.switchToPage(this.value);formatAllRec();">

, но проблема в том, что formatAllRec будет выполняться до того, как switchToPage будет фактически завершен.Как я могу добавить обработчик событий и убедиться, что он будет выполняться после завершения switchToPage?

1 Ответ

1 голос
/ 26 октября 2011

но проблема в том, что formatAllRec будет выполняться до фактического завершения switchToPage

Это на самом деле не так. Они выполнены по порядку. Симптомы указывают на то, что switchToPage() в свою очередь запускает асинхронный HTTP-запрос для выполнения некоторой работы и возвращается сразу после отправки запроса, а не ожидает его завершения.

В зависимости от того, как вы отправляете асинхронный запрос, в основном есть 2 способа его исправить:

  1. Сделать это не асинхронным. jQuery $.ajax и все его подфункции, такие как, например, $.post, например, имеют опцию async: false.
  2. Вызвать formatAllRec() как обратный вызов этого асинхронного запроса. Например, jQuery $.post может принимать функцию обратного вызова в качестве аргумента второго / третьего метода.

Более подробный ответ с примерами кода не может быть дан, поскольку вы не опубликовали JS-код. Эта проблема, по крайней мере, не связана с Java / JSP / JSF / RichFaces, а только с простым JS.

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