—»     —»   jCookies: управление cookies для jQuery
  Раздел: Java-Скрипты, Руководства   Комментариев: 1  

jCookies: управление cookies для jQuery

jCookies – плагин для jQuery, который позволяет с легкостью настраивать и управлять cookies’ами. jCookies позволяет вам хранить любой тип данных: строки, массивы, объекты и т.д. В пример можно привести случай с разработкой FormBuilder, когда в процессе разработки понадобилось решение, позволяющее хранить cookies посредством javascript. В результате, как раз, и применили jCookies.

Далее мы расскажем вам о способах хранения и вызова данных посредством jCookies, а также научим вас извлекать данные, используя код на серверной стороне (например, C# и PHP).

Заметка: данные хранятся в cookies в виде данных JSON, а затем кодируются в Base64 для того, чтобы позволить провести данные нетронутыми через не 8-битные слои. Функционал JSON и Base64 также включен в скрипт, и есть информация о том, что он позволяет сократить размер сохраняемых данных на 70%.

jCookies: управление cookies для jQuery

Создаём Cookies

Для того чтобы создать cookie, мы вызываем jCookies и должны ввести два параметра: имя и значение.

$.jCookies({
name : 'Listening To',
value : { album : 'The Go Round', artist : 'Inf', rating : 9, thumbs_up : true}
});

Как видно, у нас есть возможность хранить достаточно много всего. По умолчанию cookies выставлены на период истечения действия в 27 дней. Вы можете отредактировать данный параметр, воспользовавшись одним из следующих параметров: seconds, minutes, hours, days. Введенное значение параметров должно быть валидным. В противном случае, система проигнорирует его

$.jCookies({ name : 'User', value : { username : 'Bob' , level : 5 }, minutes : 60 });

Заметка: Если вы планируете извлекать данные с сервера посредством ASP.net, то хранить cookies крайне легко. Подробнее об этом мы расскажем позже.

Извлечение Cookies

Для того чтобы извлечь cookie, мы вызываем jCookies и вводим отдельный параметр – get.

var listening_to = $.jCookies({ get : 'Listening To' });
// response: { album : 'The Go Round', artist : 'Inf', rating : 9, thumbs_up : true}

var rutabaga = $.jCookies({ get : 'Rutabaga' }); // (cookie was set by another proces)
// response: false

Данные возвращаются именно в том виде, в котором вы можете ожидать. Если бы тут не было сохраненных cookies с указанным именем, или у подобных cookies уже истек срок действия, либо возникнет какая-либо ошибка, то ответ будет прерван. Если вам хочется знать, была ли в процессе ошибка, то вы опционально можете выставить параметр error. По умолчанию данный параметр выставлен на false.

var rutabaga = $.jCookies({ get : 'Rutabaga', error : true });
/* response:
Error : {
arguments : undefined,
message : "Invalid base64 data",
stack : "—",
type : undefined
}
*/

Это ошибочный ответ от Chrome. Результат может отличаться, в зависимости от вашего браузера.

Стираем Cookies

Для того чтобы удалить cookie, мы вызываем jCookies и вводим простой параметр – erase.

var erased_listening_to = $.jCookies({ erase : 'Listening To' });
// response: true

var rutabaga = $.jCookies({ erase : 'Rutabaga' });
// response: false

Если cookie существует и были успешно удалены, то в ответ будет получен параметр true. Если cookie никогда не существовали, то в ответ будет получен параметр false.

Серверная сторона jCookies

С HTTP Cookies, созданными jCookies на серверной стороне, достаточно просто управляться. Вам просто нужно будет, чтобы Base64 перекодировал данные, а затем JSON их обработал.

Установка cookie javascript-ом

$.jCookies({name:'user',value:{name:'brian',level:'awesome'}});
// response: true

Извлечение cookie в PHP

<?php print_r(json_decode(base64_decode($_COOKIE['user'], true))); ?>
/* response:
stdClass Object
(
[name] => brian
[level] => awesome
)
*/

С помощью PHP это делается проще некуда. В вышеприведенном демо мы отображаем вам вывод цельного cookie.

Извлечение cookie в C#

Dictionary<string,object> user =
new javascriptSerializer().Deserialize<Dictionary<string,object>>
(Encoding.UTF8.GetString(
Convert.FromBase64String(Page.Request.Cookies["user"].Value)
));

Page.Response.Write("user : name = " + (string) user["name"]);

В ситуации с C# все будет немного сложнее. Вам придется выставить тип каждого бита возвращаемых данных перед тем, как использовать их. Именно поэтому я храню данные в качестве Dictionary. Мы выставляем параметр к строке для того, чтобы сделать её доступной, и выставляем значение объекту, чтобы воспользоваться им позже. Если вы точно знаете формат cookie заранее, вы всегда можете создать собственный класс и хранить данные в этом классе.

И на этом, вроде бы, всё. Если вы хотите узнать больше информации, то посетите веб-сайт плагина для jQuery.

* Скачать jCookies
Внимание! У вас нет прав для просмотра скрытого текста.
Обнаружили ошибку или мёртвую ссылку?
Выделите проблемный фрагмент мышкой и нажмите CTRL+ENTER.
В появившемся окне опишите проблему и отправьте уведомление Администрации ресурса.
Нужна органическая вечная ссылка из данной статьи? Постовой?
Подробности здесь
Вам понравился материал? Поблагодарить легко!
Будем весьма признательны, если поделитесь этой статьей в социальных сетях:

Ключевые тэги: javascript, jQuery, PHP, cookies
Опубликовал Design FactoRy   Прочитано (раз): 6408   |   Оставлено комментариев: 1
Источник материала / оригинал статьи   Распечатать
Другие статьи и новости по теме:
Комментарий #1: 7 февраля 2012 @ 16:29
Написал: Катерина — группа: Гости  
На сайте с: --   |   Публикаций: 0   |   Комментариев: 0
ICQ: --- не указано ---
Очень интерестная статья, а главное весьма познавательная и нужная. Такой материал всегда пригодиться в работе. Так что обезательно берите его себе на заметку. Спасибо автору за такой чудестный материал.
Добавление комментария
Уважаемые пользователи!
При добавлении комментариев на сайт Вам следует учитывать следующее - все комментарии проверяются Администрацией на предмет отсутствия спама. При обнаружении признаков спама, в оставленном Вами комментарии, сам комментарий будет незамедлительно удалён, а Ваш IP-адрес будет забанен без предупреждения! Учётные записи пользователей, рассылающих спам, блокируются/удаляются без права последующего восстановления.

С уважением, Администрация сайта.
* = поля обязательны к заполнению
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Вопрос : Национальная денежная единица США
Подтверждение кода безопасности :

Включите эту картинку для отображения кода безопасности
обновить, если не виден код


Спонсоры проекта
Баннер в сайдбаре 1 (сквозной)
Баннер в сайдбаре 2 (сквозной)
Спонсоры проекта
Баннер в сайдбаре 3 (сквозной)
Баннер в сайдбаре 4 (сквозной)







Свежие шаблоны сайтов каждый день
С миру по нитке
«    Май 2020    »
ПнВтСрЧтПтСбВс
 123
45678910
11121314151617
18192021222324
25262728293031