Можно ли сохранить переменную (предпочтительно строку) в кеше браузера с помощью GWT? - PullRequest
1 голос
/ 31 августа 2011

Я перебирал Google снова и снова, но не могу найти ничего о хранении переменной в кеше. Все, что я видел в связи с этим вопросом, выглядело очень сложным и не было хорошо объяснено. Я проектирую очень простую систему входа в систему с GWT, используя текстовый файл, который редактирует строку пользователя, добавляя true или false в зависимости от того, вошли они или нет соответственно.

Проблема в том, что когда пользователь обновляет окно, они не выходят из системы (потому что я не хочу, чтобы они были), но приложение теряет текущие пользовательские переменные, поэтому кажется, что они вышли из системы. Я хотел бы кэшировать имя пользователя текущего пользователя до тех пор, пока он не выйдет из системы, чтобы я мог позволить пользователю обновить / закрыть вкладку и при этом оставаться в системе. Я ищу достаточно подробное объяснение, так как у меня мало опыта в прошлом или нет с кешированием! Если вопрос кажется глупым или решение не возможно, пожалуйста, скажите мне!

Ответы [ 4 ]

1 голос
/ 01 сентября 2011

HTML5 был лучшим и самым простым решением, которое я мог найти.

Я использовал GWT Storage API, который можно найти здесь в Eclipse, и это было чрезвычайно просто.Если кто-то хочет сделать подобное, все объясняется в ссылке, которую я предоставил.

1 голос
/ 31 августа 2011

Настройка Cookies намного проще, чем описано здесь!Я просто приведу вам пример:

    //set a cookie
    final TextBox t1 = new TextBox();
    RootPanel.get().add(t1);
    final TextBox t2 = new TextBox();
    RootPanel.get().add(t2);

    Button b1 = new Button("safe cookie");
    b1.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            // a cookie which expires after one week
            Date now = new Date();
            long nowLong = now.getTime();
            nowLong = nowLong + (1000 * 60 * 60 * 24 * 7);// seven days
            now.setTime(nowLong);
            Cookies.setCookie(t1.getText(), t2.getText(), now);
            //if the time isn't set it expires after the tab closes

        }
    });
    RootPanel.get().add(b1);

    //get a cookie
    final TextBox t3 = new TextBox();
    RootPanel.get().add(t3);
    Button b2 = new Button("get cookie by name");
    b2.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            Window.alert(Cookies.getCookie(t3.getText()));

        }
    });
    RootPanel.get().add(b2);

Источники: Установить срок действия файлов cookie для приложений GWT по истечении ожидаемого периода времени , Класс файлов cookie

0 голосов
/ 31 августа 2011

Вы можете хранить данные в пользовательском сеансе и получать их с сервера onModuleLoad () (или всякий раз, когда вам это нужно) через RCP. С точки зрения безопасности плохая идея хранить состояние входа в систему на клиенте, поскольку он может изменить его на «вошел в систему».

0 голосов
/ 31 августа 2011

GWT не предоставляет никаких опций для сохранения значения в браузере, но вы можете использовать «cookie» для хранения данных в браузере. GWT поможет вам создать и поддерживать cookie в браузере. Если вы планируете хранить больше данных в браузере, используйте функции HTML 5.

Google Gear с GWT также позволяет хранить данные в браузере

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...