|
|
|
Обновление страницы
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Нужен совет. Ситуация такая: есть страница, на которой отображаются записи из БД. По нажатию на любую из записей с открывается еще одно окно с формой для редактирования этой записи (сделано через javascript). В этом дочернем окне есть кнопка submit, по нажатию на которую данные из формы отправляются сервлету-обработчику (который правит данные в БД) и дочернее окно закрывается. Необходимо сделать так, чтобы по нажатию на кнопку submit данные в основном (родительском) окне обновлялись (т.е. отображались только что внесенные изменения). Через javascript это сделать легко, но он выполняется быстрее, чем запрос к базе. Отсюда вопрос - можно ли организовать обновление родительского окна из сервлета-обработчика запроса дочернего окна, или у Java нет средств для реализации этого и нужно по-другому организовать процедуру изменения данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2007, 08:11:00 |
|
||
|
Обновление страницы
|
|||
|---|---|---|---|
|
#18+
нельзя, сабмить данные из дочернего, потом через window.opener дергай основное окно и опрашивай сервлет, это первый вариант, как видишь глючный в том плане, что надо через фиксированные интервалы опрашивать сервлет, а это значит напрягать канал. Можно сделать иначе, организовать данные на родительской странице таим образом, чтобы добавлять или изменять данные джаваскриптом из дочернего, т.о. из дочернего окна данные будут сабмититься в сервлет, после чего обновлять скриптом, скажем, табличку в родительском. Но учти, данные будут не актуальны, если их кто-то еще помнял. Т.ч. это будет вариантом только для какой-то сессионной работы для конкретного пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2007, 09:37:43 |
|
||
|
Обновление страницы
|
|||
|---|---|---|---|
|
#18+
Можно, путем форварда на другую jsp страницу со след. примерно кодом: автор <%--reloadParentAfterSaveClose.jsp --%> <script> if (window.opener) { window.opener.submitForm2('refreshAfterDetailsChange');//for parent submit / reload } window.close();//дочернее окно закрываем </script> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 13:08:34 |
|
||
|
Обновление страницы
|
|||
|---|---|---|---|
|
#18+
а чем это поможет? если у него данные обновляются долго это все равно не спасет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 13:34:01 |
|
||
|
Обновление страницы
|
|||
|---|---|---|---|
|
#18+
Как все происходит(workflow): Доч. окно запрос по сабмиту -> сервер выполняет все изменения -> сервер перенапрвляет запрос (forward) -> доч. окно (reloadParentAfterSaveClose.jsp) обновляет родителя и закрывается Таким образом, форвард инициируется серевером после обновления данных независимо от объема / времени изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 13:45:45 |
|
||
|
Обновление страницы
|
|||
|---|---|---|---|
|
#18+
JavaEntwicklerКак все происходит(workflow): Доч. окно запрос по сабмиту -> сервер выполняет все изменения -> сервер перенапрвляет запрос (forward) -> доч. окно (reloadParentAfterSaveClose.jsp) обновляет родителя и закрывается Таким образом, форвард инициируется серевером после обновления данных независимо от объема / времени изменений. А тут можно посмотреть на этот алгоритм в действии http://www.irian.at/trinidad-demo/faces/demos/launchDialog.jspx только та еще все через AJAX, якобы вообще крута все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 16:25:56 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34584597&tid=2145469]: |
0ms |
get settings: |
18ms |
get forum list: |
22ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
50ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 306ms |
| total: | 505ms |

| 0 / 0 |
