2012-07-31 4 views
1

Я создаю приложение интрасети с GWT, gilead и Hibernate и Tomcat.Принудительно перезагрузить клиентский код при запуске сервера

Поскольку я активно откалибрую приложение, основанное на обратной связи с пользователями, я должен внести изменения и перезапустить tomcat довольно часто. Мне было интересно, как я могу без проблем сделать эти изменения доступными для клиента. (На данный момент я всегда прошу их обновиться после перезапуска tomcat).

Поскольку приложение основано на клиентской стороне (js), клиент имеет код приложения. Представьте сценарий, в котором у него есть приложение, и я загружаю новую версию и перезапускаю. После перезагрузки пользователь может отлично продолжать использовать приложение, так как он открывает страницу, но он выполняет старый код. Как я могу информировать клиента о новом коде? Я предполагаю, что просто аннулирование сеанса и перенаправление пользователя на страницу входа не сделают этого, так как код js не будет обновлен.

Любые идеи?

ответ

2

Как вы отметили, приложение будет продолжать работать после обновления на стороне сервера. Даже вызовы новой версии на сервере могут работать, если интерфейс не был изменен.

Возможное решение заключается в том, чтобы открыть комету, например, с Atmosphere for GWT. В любое время, когда вы развернули новую версию, вы передали событие активным клиентам. Приложения для клиентов получат эту трансляцию и действуют на нее, предлагая обновить пользователя. Вы также можете использовать этот механизм для передачи сообщений активным клиентам, например, время обслуживания сервера.

+0

Спасибо за ответ, я попробую. Что касается коммерческих приложений, например Gmail. Когда они вытаскивают новую функцию, я считаю, что ее не увижу, даже если она появится в моем регионе, если я не начну новую сессию, это правильно? – Zzzzz

+0

Да, до тех пор, пока вы не обновляете браузер, вы не увидите новых функций, так как требуется, чтобы новая версия загружалась точно так же, как с новой версией вашего приложения GWT. –

Смежные вопросы