Путать с куки - PullRequest
       15

Путать с куки

1 голос
/ 16 ноября 2011

Я пытаюсь определить файлы cookie с помощью JS, и я полностью потерян, с PHP все намного проще. У меня есть эта строка кода, может кто-нибудь объяснить мне, что это значит?

function setCookie(name, value, expires) {  
document.cookie = name + "=" + escape(value) + "; path=/" + ((expires == null) ? "" : ";      
expires=" + expires.toGMTString()); 
} 

Ответы [ 3 ]

3 голосов
/ 16 ноября 2011

http://www.quirksmode.org/js/cookies.html имеет больше информации ...

+ в JS эквивалентно . в PHP (объединяет) ... так что вы строите строку изввод и форматирование различных частей соответственно (например, преобразование expires)

, затем document.cookie = {та строка} устанавливает его

1 голос
/ 16 ноября 2011

Cookies состоят из нескольких частей, многие из которых необязательны

 Tokens: name=value ;expires=date ;domain=domain ;path=path 

escape(value)

Избегайте буквенно-цифровых символов, таких как пробелы и специальные символы, и заменяют их шестнадцатеричными уравнениями, такими как% hhПробел будет: %20

путь = / "Подмножество путей в домене" / "все от и до первого пути

путь = / пользователи / например, для доступа к нему выдолжно быть в / users /

+ ((expires == null) ? "" : "; expires=" + expires.toGMTString());

?: oporator (выражение)? if-true-Statement: if-false-Statement;

?: Опоратор может использоваться при if cannot

dose (expires equal null) ?

// куки, которые установлены без поля expires, называются сессионными куки.

( if true set empty string "" ) else

// установить токен по истечении ширины даты

( if not null set the expires token)

1 голос
/ 16 ноября 2011

Пояснения к вашему коду

document.cookie принять строку вида key=value, чтобы установить cookie. Ссылку можно найти по Mozilla

Значения атрибута cookie могут необязательно следовать за парой ключ-значение, указывая cookie для установки / обновления, а предшествует разделитель точки с запятой :

Согласно этой спецификации эта строка должна быть name=value ;expires=date ;domain=domain ;path=path

В вашем случае оператор + ведет себя так же, как оператор . в PHP. Он выполняет цепочку строк .

var b = 'I' + ' am' + ' a' + ' JavaScript' +' hacker.'
>>'I am a JavaScript hacker.'

Лучшее решение

Чтобы облегчить вашу боль, я предлагаю использовать плагин jquery.cookie .

Чтобы установить печенье

$.cookie('the_cookie', 'the_value', { expires: 7, path: '/' });

Чтобы получить печенье

$.cookie('the_cookie'); 

Для удаления куки

$.cookie('the_cookie', null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...