Куки – метод хранения информации в процессе созданий разных веб приложений. Плагин jQuery jCookies позволяет легко работать с самыми разными данными: массивами, строками, объектами.
Рассмотрим методы получения и хранения информации с jCookies и получение информации с помощью кодов C# и PHP.
Создание Cookie
Для создания куки необходимо использовать метод jCookies с 2 параметрами: именем и значением:
$.jCookies({
name : 'Listening To',
value : { album : 'The Go Round', artist : 'Inf', rating : 9, thumbs_up : true}
});
Таким способом можно сохранять любые данные на протяжении 27 дней.
Также можно самому задавать длительность хранения информации, включая минуты. Это делается с помощью свойств, которые задаются в строки хранения: days, hours, minutes, seconds. Но их нужно ставить в виде цифр, иначе они будут игнорированы.
$.jCookies({ name : 'User', value : { username : 'Bob' , level : 5 }, minutes : 60 });
Получение данных куки
Для этого нужно вызвать лишь одну опцию get с метода jCookies
var listening_to = $.jCookies({ get : 'Listening To' });
// ответ: { album : 'The Go Round', artist : 'Inf', rating : 9, thumbs_up : true}
var rutabaga = $.jCookies({ get : 'Rutabaga' });
// ответ: false
Данные возвращаются в первоначальном виде. Если вы сделали какую-то ошибку, возвращается значение false.
var rutabaga = $.jCookies({ get : 'Rutabaga', error : true });
/* ответ:
Error : {
arguments : undefined,
message : "Invalid base64 data",
stack : "—",
type : undefined
}
*/
Пример сделан на ошибке в браузере Chrome.
Удаление куки
Также очень просто – вызываем с метод jCookies с одним параметром erase:
var erased_listening_to = $.jCookies({ erase : 'Listening To' });
// ответ: true
var rutabaga = $.jCookies({ erase : 'Rutabaga' });
// овтет: false
Если куки уже удалено — возвращается true. В противоположном случае — false.
Серверная сторона
Тут необходимо декодировать данные Base64 и JSON.
Установка куки в JavaScript
$.jCookies({name:'user',value:{name:'brian',level:'awesome'}});
// ответ: true
Куки в PHP
<?php print_r(json_decode(base64_decode($_COOKIE['user'], true))); ?> /* ответ: stdClass Object ( [name] => brian [level] => awesome ) */
Тута работа с куками такая же, как мы показывали выше.
Dictionary user =
new JavaScriptSerializer().Deserialize>
(Encoding.UTF8.GetString(
Convert.FromBase64String(Page.Request.Cookies["user"].Value)
));
Page.Response.Write("user : name = " + (string) user["name"]);
Тут работа немного усложняется.
Нужно устанавливать тип каждой части данных, перед их использованием.
Источник: http://tympanus.net/codrops/2011/09/04/j-is-for-jcookies-http-cookie-handling-for-jquery/



