Дополнительное обновление после отправки

Я знаю, что всякий раз, когда вы отправляете форму, вы обновляете страницу. Но есть ли способ использовать javascript или что-то еще, что позволяет веб-странице обновляться еще раз после ввода кнопки отправки?

Большое спасибо, ребята.


person user1681961    schedule 26.11.2012    source источник
comment
почему ты хочешь сделать это? Это звучит немного нестандартно, вы можете сделать так, чтобы ваша отправка переходила к новому действию в вашем контроллере, которое просто перенаправляет к нужному вам представлению.   -  person marko    schedule 26.11.2012
comment
Хорошо, потому что сейчас я столкнулся с моей страницей EDIT. После нажатия кнопки отправки, которая является кнопкой ОБНОВЛЕНИЕ. Страница обновится, и показанные значения будут обновлены до обновления. Однако, когда я обновляю ОДИН раз, отображается обновленное значение. Вот почему я хотел сделать дополнительное обновление после нажатия кнопки отправки.   -  person user1681961    schedule 27.11.2012
comment
Извините, но похоже, что у вас надвигаются более серьезные проблемы. Я предлагаю вам немного изменить структуру вашей программы (как я предложил ниже), и вы увидите, что эта проблема исчезнет. Возьмите сгенерированный контроллер в качестве примера.   -  person Hans Westerbeek    schedule 27.11.2012


Ответы (1)


Я предполагаю, что вам нужно реализовать шаблон Post, Redirect, Get, который рекомендуется в приложениях Grails. если вы наберете grails generate-controller [somedomainclassname], вы увидите, что этот контроллер действительно использует этот шаблон.

Это работает следующим образом:

  1. Ваша форма подчиняется действию внутри контроллера, назовем его save()
  2. Затем ваше действие save() выполняет необходимые операции для фактического сохранения объекта, когда это делается, оно отправляет браузеру «перенаправление», примерно так: redirect(action: "show", id: mySavedObject.id)
  3. Это заставит браузер выдать GET для URL-адреса /mycontroller/show/{id}.
  4. Этот запрос принимается действием show вашего контроллера. Затем он продолжает отображать только что созданный объект.

Этот подход хорошо сочетается с семантикой HTTP и позволяет избежать раздражающих вопросов «хотите ли вы повторно опубликовать данные формы» для конечного пользователя.

person Hans Westerbeek    schedule 26.11.2012
comment
Спасибо за ответ! Я выполнил действие POST, но мне нужно ДОПОЛНИТЕЛЬНОЕ обновление после действия POST. - person user1681961; 27.11.2012
comment
@ user1681961 просто делайте то, что написал Ганс, это решит вашу проблему! - person marko; 27.11.2012