2014-03-06 55 views
0

我有與動態內容的div:檢查時間戳localStorage的記錄

<div id="news">test</div> 

並希望添加其內容的localStorage 50秒,以防止對服務器的新的要求,如果是年齡超過50秒然後刪除它並設置一個新的內容。我jQuery是:

$(function(){ 
function now() {return+new Date} 
var db = window.db = { 
    get : function(key) { 
    var entry = JSON.parse(localStorage.getItem(key)||"0"); 
    if (!entry) return null; 
    if (entry.ttl && entry.ttl + entry.now < now()) { 
     localStorage.removeItem(key); 
     return null; 
    } 
    return entry.value; 
}, 
set : function(key, value, ttl) { 
    localStorage.setItem(key, JSON.stringify({ 
     ttl : ttl || 0, 
     now : now(), 
     value : value 
    })); 
    } 
}; 
}); 

$(function() { 
// Set Value with TTL of 50 Seconds using Milliseconds. 
db.set("homeNews", $("#news").html(), 50000); 
}); 

$(function() { 
var contentsOfNews = db.get("homeNews"); 
$("#news").html(contentsOfNews); 
}); 

的問題是:這是每個負荷增加的內容到localStorage的,但應該檢查時間戳,如果加入的含量大於50秒,然後重寫這個localStorage的數據。如果少於50秒,則不做任何事情。感謝您的幫助。

請隨意編輯小提琴:http://jsfiddle.net/KQmky/1/

萬分感謝

+0

使用[setTimeout()](http://www.w3schools.com/jsref/met_win_settimeout.asp)函數 – Pavlo

+0

謝謝帕夫洛,對不起,因爲愚蠢,但你能請幫助這在我的jsfiddle?謝謝 – qqruza

+0

'''setTimeout(function(){db.set(「homeNews」,$(「#news」)。html(),50000);},50000);' – Pavlo

回答

1

你可以做一個檢查組中的功能,看是否值存在,並檢查其TTL有太多

像這樣的東西應該足夠了:

set : function(key, value, ttl) { 
    var entry = JSON.parse(localStorage.getItem(key)||"0"); 

    if (!entry || (entry.ttl && entry.ttl + entry.now < now())) { 
     //set the new value in local storage 
    } 
} 

這樣,如果沒有該項然後將其保存,或者如果有一個條目,但它的ttl已經通過然後它會覆蓋它

+0

謝謝user2355891,你的代碼給我的jsFiddle?你的幫助真的很感激。 – qqruza

+0

沒問題。 http://jsfiddle.net/aKaWq/ – bottens

+0

謝謝,但如果你可以通過更改第一個div的內容來測試它,你可以看到它每次都會改變本地存儲 – qqruza