3

localStorage のコンテンツのタイマーが必要です。

たとえば、動的に更新された DIV を取得しました

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

そして、次のコードを使用して、html ブロッ​​クとして localStorage に追加することができました。

$(function() {
   localStorage["homeNews"] = JSON.stringify($("#news").html());
});
$(function() {
   if (localStorage["homeNews"] != null) {
       var contentsOfNews = JSON.parse(localStorage["homeNews"]);    
      $("#news").html(contentsOfNews);
 } 
});

localStorage["homeNews"] にタイム スタンプを追加する必要があり、現在の時刻と localStorage のタイム スタンプを確認して 5 分後に削除するスニペットを追加する必要があります。

The fiddle is here: http://jsfiddle.net/Rn4NC/

4

1 に答える 1

5

LocalStorage コンテンツ タイムスタンプと TTL Time To Live to Remove 自体

JSFiddle: http://jsfiddle.net/Rn4NC/3/

目標は、プログラマーが提供する時間に基づいて古すぎないデータを簡単に取り込めるインターフェイスを提供することです。シンプルなインターフェースは次のとおりです。

TTL を使用した DB の使用例

HTML

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

JavaScript

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

$(function() {
    // Get Value
    var contentsOfNews = db.get("homeNews");

    // Show Value
    $("#news").html(contentsOfNews);
});

これが使用例です。次は TTL をサポートするインターフェイス定義です。

TTL インターフェイス定義を使用したローカル ストレージ。

以下は使用のためのインターフェイス ロジックでdb、上記の例で使用されています。完全な使用方法については、JSFiddleの例を確認してください。

$(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
            }) );
        }
    };
});
于 2013-04-17T18:53:41.860 に答える