как сохранить счетчик hashmap в gwt application - PullRequest
0 голосов
/ 02 ноября 2011

Я работаю над тем, чтобы хранить различные пользовательские счетчики в памяти на уровне приложения (не в базе данных) и иметь счетчики не более 3.

Я разработал этот код с использованием одноэлементного класса с hashmap для хранения пары ключ-значениес идентификатором пользователя и его счетчиком и временем.

После первоначального использования этого одноэлементного класса на стороне клиента он работал нормально для счетчиков, но при обновлении браузера был создан новый одноэлементный объект.

Я искал и узнал, что по соображениям безопасности javascript не использует общие объекты, поэтому я переместил его в вызов rpc и сделал его объектом на стороне сервера для его преодоления, но когда я протестировал его снова, при обновлении новогообъект создан и данные потеряны.

Я также протестировал статическую хэш-карту для хранения данных для области приложения, но он работает почти так же, после обновления браузера, его сброса и потери в нем старых данных.Это немного отличается от обычных веб-приложений Java, где мы следуем этому подходу.

этот метод работал для меня в случае нормальных веб-приложений spripng, но не в gwt

Ответы [ 3 ]

0 голосов
/ 02 ноября 2011

Каков ожидаемый срок службы счетчиков?Разделяют ли они других пользователей?Вы можете сохранить их в базе данных или в сеансе и получить к ним доступ через асинхронный вызов GWT.

0 голосов
/ 02 ноября 2011

Вы можете использовать GWT HTML5 LocalStorage , чтобы иметь постоянные данные на стороне клиента или, конечно, использовать на стороне сервера. Это действительно зависит от того, чего вы пытаетесь достичь.

0 голосов
/ 02 ноября 2011

Вы правы, вам нужно сохранить это значение на стороне сервера и получить к нему доступ через асинхронный вызов.Так как в прошлом вы имели успех с Spring, вы можете рассмотреть возможность его повторного использования со стороной реализации ваших асинхронных сервисов GWT.Вы можете легко внедрить bean-компонент Spring Singleton в класс реализации GWT Async и использовать его так же, как в прошлом.

...