Me gustaría configurar una cookie que nunca caduque. ¿Sería eso posible?
document.cookie = "name=value; expires=date; path=path;domain=domain; secure";
No quiero hacer que la fecha sea realmente grande, solo me pregunto si hubo un valor para el parámetro caduca en la cookie que le dijo que nunca caduque.
Gracias.
javascript
cookies
Jose vega
fuente
fuente
Respuestas:
No No se puede hacer La 'forma' de hacerlo es simplemente hacer que la fecha de vencimiento sea como 2030.
fuente
No hay sintaxis para lo que quieres. No establecer caduca hace que la cookie caduque al final de la sesión. La única opción es elegir un valor arbitrariamente grande. Tenga en cuenta que algunos navegadores tienen problemas con fechas posteriores a 2038 (cuando el tiempo de época de Unix excede un int de 32 bits).
fuente
Expires
oMax-Age
es una cookie de sesión: se elimina cuando el cliente se apaga. Sin embargo, los navegadores web pueden usar la restauración de sesión , lo que hace que la mayoría de las cookies de sesión sean permanentes, como si el navegador nunca se cerrara. ( fuente: MDN )Puede hacer como el ejemplo en documentos de Mozilla :
PD
Por supuesto, habrá un problema si la humanidad todavía usa su código en el primer minuto del año 10000 :)
fuente
Todas las cookies caducan según la especificación de cookies , el valor máximo que puede establecer es
Entonces, la vida útil máxima de la cookie es
fuente
document.cookie = 'subscripted_24=true; expires=' + new Date(2147483647 * 1000).toUTCString();
Es posible que pueda configurar una cookie en una fecha de vencimiento de un mes o algo así y luego reasignar la cookie cada vez que el usuario visite el sitio web nuevamente
fuente
Si no establece una fecha de vencimiento, la cookie caducará al final de la sesión del usuario. Recomiendo usar la fecha justo antes de que el tiempo de época de Unix se extienda pasado un entero de 32 bits. Para poner eso en la cookie que usaría
document.cookie = "randomCookie=true; expires=Tue, 19 Jan 2038 03:14:07 UTC;
, asumiendo que esarandomCookie
es la cookie que está configurando ytrue
es su valor respectivo.fuente
Usted simplemente no puede . No hay un código exacto para configurar una cookie para siempre, pero un viejo truco servirá, como
current time + 10 years
.Solo una nota de que cualquier fecha posterior
January 2038
lo condenará a las cookies ( 32 bits int ) se eliminará al instante. Desea un milagro que se arregle en el futuro cercano. Para 64 bits int , los años2110
serán seguros. A medida que pase el tiempo, el software y el hardware cambiarán y es posible que nunca se adapten a los más antiguos (las cosas que tenemos ahora), así que prepare el ahora para el futuro .fuente
Si tiene la intención de leer los datos solo desde el lado del cliente, puede usar el almacenamiento local. Se elimina solo cuando se borra la memoria caché del navegador.
fuente
Puede hacer que una cookie nunca termine configurándola en cualquier fecha más una más que el año actual de esta manera:
fuente