2010-08-05 19 views
5

Burada bir sürü jQuery çerez bilgisi okudum ve bir jQuery çerez eklentisi olduğunu biliyorum (jQuery cookie). Çok fazla araştırma yapmadan, soru: Çerezin son kullanma tarihini belirlemenin bir yolu var mı? jquery.cookie doc itibarenjQuery cookie son kullanım değeri

:

/** 
* 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/[email protected] 
*/ 

bu eklenti bunu yapabileceği gelmiyor mu?

Bunu yapmak istememin nedeni, çerezimin 5 dakika işlem yapılmadığında sona ermesi ve kullanıcının, oturumlarının Javascript'ten sona ermek üzere olduğunu bildirmesidir.

cevap

3

şey değişti sürece, bu değeri den alınamıyor Bir çerez, bunu ayarlayabilirsiniz, ancak bu, zaman dolduğunda, artık çerez koleksiyonunda görünmeyecek .... ama 5 dakika içinde sona ereceğini göremezsiniz.

setTimeout(function() { 
    alert("Your session will expire in 30 seconds!"); 
}, 270000); //4.5 * 60 * 1000 
it 5 dakika ise seans sona erme çizgisinde bir şey için

Yapabileceğiniz en iyi şey bu gibi 4 dakika 30 saniye uyarmak isteyebilirsiniz, örneğin, doğru gecikme ile setTimeout() kullanmaktır

+0

için son kullanma tarihini kontrol etmenizi sağlayan bir Javascript API'si yoktur, teşekkürler. Her bir sonraki sayfa isteği üzerine çerezi PHP üzerinden güncellediğimden beri, sadece her sayfa isteğinde cookie.expiration - (bir süre) kullanıcıya bir mesaj atmak için bir zaman aşımı belirlediğimi mi öneriyorsunuz? Sanırım neden bir son kullanma tarihi ayarlayabileceğinizi anlamıyorum ama geri alamıyorum. – Chris

+0

@Chris - Bunun nedenini bilmiyorum, sadece belge/cookie API'sinin bunu elde etmek için yöntemleri olmadığını bil, eğer 'document.cookie'ye bakarsanız Orada :) Ve her sayfada zaman aşımı dahil olarak evet, ya da sadece dahil bir JavaScript dosyasında bu zaman aşımı var ... Bir uyarı çubuğu ya da kişisel olarak bir uyarı yanı sıra bir şey yapardım, ama fikir aynıdır :) –

5
$.cookie("example", "foo", { expires: 7 }); 

7 gün

bir çerez için son kullanma tarihini kontrol etmesine izin veren ne JavaScript API vardır

içinde sona Will

+4

Son kullanma değerini istiyorum. Son kullanma değerinin nasıl ayarlanacağını sormuyorum. – Chris

+0

hiçbir çerez – maestr0

3

JavaScript API'sinden erişilemediği için, tek yolu metadata ile paralel olarak içeriğinde saklamaktır. Sonra

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 }); 

geri okumak (besbelli, durumunda koruma ekleneceği çerez zaten dolmuş):

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

Not bu tamamen güvenilir olmayacaktır arada istemci saat değişiklikleri, diyelim ki, nedeni ise DST'ye.

+0

var cookie = $ .parseJSON ($. çerez ("myCookie")); çalışmıyor. @link http://stackoverflow.com/questions/1532193/reading-cookie-expiration-date – user470370

+0

@ user470370: jQuery'ye ve [çerez eklentisi] (dahil mi sağlanması http://www.electrictoolbox.com/jquery -cookies /) ve doğru json kullanın (Ben bir hata yaptım, json dize tuşlarının etrafında tırnaklar unuttum) sadece iyi çalışıyor. http://jsfiddle.net/3ddLG/2/ –