JavaScript Cookie без даты истечения срока действия



Я хотел бы настроить cookie, который никогда не истекает. Возможно ли это вообще?



 document.cookie = "name=value; expires=date; path=path;domain=domain; secure";


Я не хочу, чтобы дата была очень большой, мне просто интересно, было ли значение параметра expires в файле cookie, который сказал, что он никогда не истекает.



спасибо.

613   10  

10 ответов:

Неа. Это невозможно сделать. "Способ" сделать это-просто сделать срок годности похожим на 2030 год.

нет синтаксиса для того, что вы хотите. Если параметр не установлен, срок действия файла cookie истекает в конце сеанса. Единственный вариант-выбрать какое-то сколь угодно большое значение. Имейте в виду, что некоторые браузеры имеют проблемы с датами после 2038 года (когда время эпохи unix превышает 32-разрядный int).

вы можете сделать в качестве примера на Mozilla docs:

 document.cookie = "someCookieName=true; expires=Fri, 31 Dec 9999 23:59:59 GMT";

P. S

конечно, будет проблема, если человечество все еще использует ваш код на первой минуте года 10000:)

Если вы не установите дату истечения срока действия cookie истечет по окончании пользовательского сеанса. Я рекомендую использовать дату прямо перед тем, как время Unix epoch продлит переданное 32-разрядное целое число. Чтобы поместить это в куки, вы бы использовали document.cookie = "randomCookie=true; expires=Tue, 19 Jan 2038 03:14:07 UTC;, предполагая, что randomCookie это куки, которые вы устанавливаете и true это соответствующее значение.

все куки истекают в соответствии с куки спецификация, максимальное значение, которое вы можете установить

 2^31 - 1 = 2147483647 = 2038-01-19 04:14:07

таким образом, максимальное время жизни печенья

$.cookie('subscripted_24', true, { expires: 2147483647 });

вы можете установить куки на дату истечения месяца или что-то еще, а затем переназначить куки каждый раз, когда пользователь снова посещает веб-сайт

ВЫ ПРОСТО НЕ МОЖЕТЕ. Там нет точного кода, чтобы использовать для установки навсегда cookie, но старый трюк будет делать, как current time + 10 years.

просто обратите внимание, что любые даты за пределы January 2038 будет обречен вас на печенье ( 32-битный int) будет удален мгновенно. Пожелайте чуда, что это будет исправлено в ближайшем будущем. Ибо 64-битный int, года по 2110 будет безопасным. Со временем программное и аппаратное обеспечение будет меняться и может никогда не адаптироваться к новым условиям. старые (то, что у нас есть сейчас) так что подготовьте теперь на будущее.

посмотреть проблема 2038 года

Если вы собираетесь читать данные только на стороне клиента, вы можете использовать локальное хранилище. Он удаляется только тогда, когда кэш браузера очищается.

вы можете сделать печенье, никогда не закончится, установив его на любую дату плюс один больше, чем в текущем году, как это :

var d = new Date();    
document.cookie = "username=John Doe; expires=Thu, 18 Dec " + (d.getFullYear() + 1) + " 12:00:00 UTC";

пропустить истекает

Comments

    Ничего не найдено.