|
|
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
Думаю, это типичная проблема и должно быть стандартное решение. Есть форма в ней поля ввода, надо чтобы данные введенные пользователем сохранялись даже, если пользователь не нажмет кнопку "Сохранить" в форме и закроет страницу. Я попробовал скомбинировать функцию javascript вызывая ее на onunload Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. У меня приложение Seam-2.2.2-Final. В качестве бэкбина (bean) использую stateful ejb. В методе бина с пометкой @Destroy вызываю функцию save(). Этот метод должен автоматически вызываться перед удалением бина, он и вызывается, но javascript функция OnUnload() не успевает видимо передавать данные поля с введенным именем. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Буду очень рад подсказке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2012, 18:44:09 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
А что если форма будет содержать невалидные данные? Я к тому что глуповатое решение, лучше повесь на инпуты ajax запросы и сохраняй где тебе надо, попутно валидируя, хотя я смысла вашей задачи все равно не понимаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2012, 22:12:16 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
забыл никЯ к тому что глуповатое решение +1 т.к. при нажатии на крест вверху страницы = Отмена по стандарту Виндовс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2012, 22:30:17 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
забыл ник, я упростил то, что у меня на самом деле. Что касается валидации, я использую <rich:ajaxValidator event="onblur" /> А как Вы предлагаете использовать ajax, чтобы данные сразу передавались в бин? Мне казалось мое решение вполне удачным, если бы оно работало. Проблема в том, что мое приложение для callcenter. Когда приходит звонок приходит и url соответствующего сценария, который открывается в броузере оператора, на обработку оператору дается ограниченное время, по окончанию которого, приходит новый url возможно с другим сценарием, и если оператор не успел нажать на кнопку, чтобы сохранить данные предыдущего сценария, данные будут потеряны. Сохранится на onunload в данном случае казалось мне логичным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2012, 19:35:42 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
rus_sun, тебе же подсказали. Убери двойственность логики. Убери кнопку сохранить. Повесь инормационную лейбу Заполнен \ Незаполнен как в иклипсе. И на каждый ввод в поле - передавай \ сохраняй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2012, 20:55:18 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
Petro123, Я сделал так: как показано ниже, вроде бы при изменении поля в inplaceInput должен вызываться метод save и данные сохранятся, но вызов метода не происходит. Не подскажите, что я не так делаю Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2012, 12:19:18 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
rus_sun, Отлаживай! - напр. вместо бина - JS Message и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2012, 12:31:37 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
rus_sun, На самом деле, onunload, а не OnUnload. Но это - вторично. Эта штука у Вас по-человечески не заработает. Юзер может отключить питание, просто закрыть ноутбук и т.д. и т.п. . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2012, 13:18:43 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
Petro123, извините мою неопытность, а как это вместо бина вызывать JS message и что это дает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2012, 13:25:52 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
ShSergerus_sun, На самом деле, onunload, а не OnUnload. Но это - вторично. Эта штука у Вас по-человечески не заработает. Юзер может отключить питание, просто закрыть ноутбук и т.д. и т.п. . не, я предложил Короткие транзакции на ПОЛЕ класса, а не на класс. - при изменении поля (сняли фокус) - сохранение в БД. Раз такая постановка :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2012, 13:27:43 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
rus_sunPetro123, извините мою неопытность, а как это вместо бина вызывать JS message и что это дает? обычная отладка программиста. - вместо "строка не работает" - ОПЕРАТОР не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2012, 13:28:53 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
авторЯ сделал так: как показано ниже, вроде бы при изменении поля в inplaceInput должен вызываться метод save и данные сохранятся, но вызов метода не происходит. Не подскажите, что я не так делаю <h:form> <rich:messages > <f:facet name="errorMarker"> <h:graphicImage value="../img/error.gif"/> </f:facet> </rich:messages> <h:panelGrid columns="2"> <h:outputText value="Фамилия"/> <rich:inplaceInput id="_secondName" value="#person.secondName}" onchange="#backBean.save()}"> <rich:ajaxValidator event="onviewactivated"/> </rich:inplaceInput> <h:outputText value="Имя"/> <rich:inplaceInput id="_firstName" value="#{person.firstName}" onchange="#{backBean.save()}" > <rich:ajaxValidator event="onviewactivated"/> </rich:inplaceInput> </h:form> Что показывает файрбаг? Запрос уходит на сервер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2012, 16:30:39 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
забыл ник, подключил firebug. Ввел в поле "Фамилия" имя Сидоров, кликнул вне поля и запрос ушел. Вот запрос post, который уходит на сервер Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Вот ответ Код: xml 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 12:56:28 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
У тебя валидация не проходит почему-то, поэтому метод не вызывается, почему не проходит валидация - хз, смотри код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 13:17:50 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
забыл ник, валидация работает, зато обнаружил, что rich:inplaceInput вызывает метод save() при загрузке страницы почему-то, а не при событии onchange или onblur (я всякие попробовал). Как это побороть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 13:28:47 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
Валидация то у тебя работает, но в твоем случае какое то поле изза валидации отмечается как невалидное, и поэтому жизненный цикл jsf не доходит до вызова action. Смотри вот у тебя респонс автор<?xml version="1.0"?> <html xmlns=" http://www.w3.org/1999/xhtml"><head><title></title><link class="component" href="/mtt/a4j/s/3_3_3.FinalMETA-INF/skins/glassX.xcss/DATB/eAGTcz60MXT5DGkAD2IDhA__" rel="stylesheet" type="text/css" /><link class="component" href="/mtt/a4j/s/3_3_3.FinalMETA-INF/skins/glassXExt.xcss/DATB/eAGTcz60MXT5DGkAD2IDhA__" media="rich-extended-skinning" rel="stylesheet" type="text/css" /><link class="user" href="/mtt/stylesheet/theme.xcss" rel="stylesheet" type="text/css" /><link class="user" href="/mtt/stylesheet/theme.css" rel="stylesheet" type="text/css" /></head><body><dl id="j_id11:_errMessage" class="rich-messages" style="display: none; color: firebrick; font: italic;"><dt></dt></dl><meta name="Ajax-Update-Ids" content="j_id11:_errMessage" /><span id="ajax-view-state"><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id4" /></span><meta id="Ajax-Response" name="Ajax-Response" content="true" /></body></html> У тебя в ответе приходит что надо отрисовать элемент с айди j_id11:_errMessage, ну я так полагаю это по-любому rich:messages автор<meta name="Ajax-Update-Ids" content="j_id11:_errMessage" /> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 14:20:59 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
Кстати я похоже не прав, глянь http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/rich_ajaxValidator.html там написано что ajaxValidator Skips all JSF processing except validation Тебе похоже придется заменить валидатор на a4j:support ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 14:29:36 |
|
||
|
Сохранение данных на onunload
|
|||
|---|---|---|---|
|
#18+
забыл ник, да, я так и решил проблему Вот так работает отлично: Код: xml 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2012, 17:37:28 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37647845&tid=2132605]: |
0ms |
get settings: |
13ms |
get forum list: |
21ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 314ms |
| total: | 461ms |

| 0 / 0 |
