Значение срока действия cookie jQuery - PullRequest
6 голосов
/ 05 августа 2010

Я прочитал много вопросов о файлах cookie jQuery и знаю, что существует плагин файлов cookie jQuery ( файл cookie jQuery ). Без долгих исследований возникает вопрос: есть ли способ определить дату истечения срока действия cookie?

Из документа jquery.cookie:

/**
* Get the value of a cookie with the given name.
*
* @example $.cookie('the_cookie');
* @desc Get the value of a cookie.
*
* @param String name The name of the cookie.
* @return The value of the cookie.
* @type String
*
* @name $.cookie
* @cat Plugins/Cookie
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/

Не похоже, что этот плагин может это сделать?

Причина, по которой я хочу это сделать, заключается в том, что срок действия моих файлов cookie истекает через 5 минут бездействия, и я хотел бы уведомить пользователя о том, что его сеанс скоро истекает из Javascript.

Ответы [ 3 ]

6 голосов
/ 05 августа 2010
$.cookie("example", "foo", { expires: 7 });

Срок действия истекает через 7 дней

Не существует Javascript API, который позволяет проверять дату истечения срока действия куки

3 голосов
/ 05 марта 2013

Поскольку он недоступен из JavaScript API, единственный способ - сохранить его в контенте параллельно с метаданными.

  var textContent = "xxxx"
  var expireDays = 10;
  var now = new Date().getTime();
  var expireDate = now + (1000*60*60*24*expireDays);
  $.cookie("myCookie", '{"data": "'+ textContent +'", "expires": '+ expireDate +'}', { expires: expireDays  });

Затем прочитать его обратно (очевидно, добавьте меры безопасности на случай, если cookieсрок действия уже истек):

var now = new Date().getTime();
var cookie = $.parseJSON($.cookie("myCookie"));
var timeleft = cookie.expires - now;
var cookieData = cookie.data;

Обратите внимание, что это не будет полностью надежно, если время клиента изменится, скажем, из-за летнего времени.

3 голосов
/ 05 августа 2010

Если что-то не изменилось, вы не можете получить это значение из куки-файла, вы можете установить его, но это все, когда он истекает, он просто больше не будет отображаться в коллекции куки-файлов ..... но вы не можете видеть, что срок его действия истекает, например, через 5 минут.

Лучшая ставка для чего-либо, соответствующего истечению срока действия сессии, - это использовать setTimeout() с правильной задержкойНапример, если это 5 минут, вы можете подать предупреждение через 4 минуты 30 секунд, например:

setTimeout(function() {
  alert("Your session will expire in 30 seconds!");
}, 270000);  //4.5 * 60 * 1000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...