как сохранить значение постоянно в переменной JavaScript - PullRequest
2 голосов
/ 14 января 2010

Я хочу сделать заявку, как показано ниже.

Сначала есть страница с четырьмя переключателями. Пользователь нажимает на любую из кнопок радио, но не сохраняет, и он переходит на другую страницу. Затем, если он возвращается на ту же страницу с переключателями, он показывает выбранный переключатель, прежде чем перейти на другую страницу.

Как я могу сделать это, используя jQuery, jsp, ajax и javascript?

Я не могу использовать сессию, куки и доступ к базе данных. здесь я перенаправляю страницу "location.href"

Пожалуйста, дайте мне решение как можно скорее

Ответы [ 3 ]

2 голосов
/ 14 января 2010

Вы можете использовать YUI 2: Утилита хранения :

Утилита хранилища предоставляет механизм для хранения значительных объемов текстовых данных на стороне клиента, независимо от того, поддерживает ли ваш браузер предложенную спецификацию хранилища HTML 5.

Каждый экземпляр Storage Utility использует один из трех механизмов хранения для хранения данных:

  • HTML 5: если браузер клиента поддерживает HTML 5, то этот механизм обернет возможности собственного хранилища браузера (document.localStorage и document.sessionStorage).
  • Google Gears: Google Gears - это расширение браузера, которое пользователи могут установить на свой компьютер. Одной из его особенностей является база данных SQLite; Утилита хранения использует эту базу данных для хранения на стороне клиента при использовании механизма Gears.
  • SWF: YUI предоставляет утилиту SWFStore, которая нормализует доступ к общему объекту Flash. Это запасной механизм Storage Utility, который будет работать в большинстве браузеров из-за значительного проникновения плагина Adobe Flash.

Шаблон общего пользования

Ниже приведен общий шаблон кода, используемый для получения движка, а затем записи / чтения некоторых данных:

// this will fetch the first available engine
var storageEngine = YAHOO.util.StorageManager.get();

storageEngine.subscribe(storageEngine.CE_READY, function() {
    storageEngine.setItem('testText', 'this is a triumph');
    storageEngine.setItem('testNumber', 1234567890);
    storageEngine.setItem('testBoolean', true);
    alert(storageEngine.getItem('testText'));
});

Конечно, самый простой и самый технологичный подход - использовать cookie , для которого есть jQuery Plugin .

Это базовое использование вот так :

<script src="../jquery-1.3.min.js" type="text/javascript"></script> 
<script src="jquery.cookie.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    $(function() {
        var COOKIE_NAME = 'test_cookie';
        var ADDITIONAL_COOKIE_NAME = 'additional';
        var options = { path: '/', expires: 10 };

        // set cookie by number of days
        $('a').eq(0).click(function() {
            $.cookie(COOKIE_NAME, 'test', options);
            return false;
        });

        // set cookie by date
        $('a').eq(1).click(function() {
            var date = new Date();
            date.setTime(date.getTime() + (3 * 24 * 60 * 60 * 1000));
            $.cookie(COOKIE_NAME, 'test', { path: '/', expires: date });
            return false;
        });

        // get cookie
        $('a').eq(2).click(function() {
            alert($.cookie(COOKIE_NAME));
            return false;
        });

        // delete cookie
        $('a').eq(3).click(function() { 
            $.cookie(COOKIE_NAME, null, options);
            return false;
        });
</script> 
0 голосов
/ 14 января 2010

Либо добавьте выделение ко всем ссылкам в качестве параметра GET (вероятно, это НЕ путь, а один способ позволить клиенту обрабатывать состояние), либо используйте куки (предпочтительно API cookie jQuery, который является немного проще, чем ванильный JavaScript-файл cookie).

0 голосов
/ 14 января 2010

Похоже, что вы хотите сохранить значение в cookie .

РЕДАКТИРОВАТЬ: Вот плагин jQuery для работы с куки: http://plugins.jquery.com/project/Cookie

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