JavaScript Cookie без даты истечения срока действия
Я хотел бы настроить cookie, который никогда не истекает. Возможно ли это вообще?
document.cookie = "name=value; expires=date; path=path;domain=domain; secure";
Я не хочу, чтобы дата была очень большой, мне просто интересно, было ли значение параметра expires в файле cookie, который сказал, что он никогда не истекает.
спасибо.
10 ответов:
нет синтаксиса для того, что вы хотите. Если параметр не установлен, срок действия файла 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