1

私はいくつかの文字列を一時的に保存する必要がある Web サイトに取り組んでいます。

たとえば、4 つの文字列があるとします。

1. hello
2. world
3. foo
4. test

FIFO (先入れ先出し) システムを実装する必要があります。つまり、新しい文字列を追加すると、最初の (最も古い) 項目が削除されます。jQuery cookie プラグインを使用してこれをどのように実装しますか?

以下を使用して、Cookie を取得/設定します。

console.log( $.cookie("test") ); //get cookie
$.cookie("test", "hello", { expires: 7, path: '/' }); //set cookie

前もって感謝します。

4

2 に答える 2

2

可能であれば、Cookie を使用しないでください。最新のブラウザにはlocalStorage.

また、何らかの構造を使用している場合は、js 構造 (配列、オブジェクトなど) を作成して操作します。

ストレージ (Cookie) に保存するには、この構造を json などの文字列にシリアル化します。

addValueメソッドとを使用して js オブジェクトを作成することを提案します。これは、js データ ストレージをラップし、save メソッドとgetValueをフックすることで永続ストレージとサイレントに同期します。addValuesetValue

開始時に を実行できますinit()。これにより、ストレージからデータが取得され、js に逆シリアル化されます。

于 2012-09-05T14:06:54.433 に答える
2

私が書いたいくつかのコードがあります。テストも実行もされておらず、メモ帳に書かれています。ほんの一例です。メソッド init および saveData は Cookie 用に変更できます。

   var myStorage = {
    data:[],
    init:function(){
        var json = localStorage.getItem('myData');
        if (json!=null) {
            this.data = jQuery.parseJSON(json);
        } else {
            this.data = [];
        }
    },
    addItem:function(val){
        this.data.push(val);
        this.saveData();
    },
    getItem:function(){
        var res = data[0];
        this.data = this.data.slice(1);
        this.saveData();
        return res;
    },
    saveData:function(){
        var json = JSON.stringify(this.data);
        localStorage.setItem('myData',json); 
    }


}

$(function(){
    myStorage.init();
});
于 2012-09-05T20:50:25.847 に答える