1

我正在一个需要临时保存一些字符串的网站上工作。

比如说我有 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对象getValue,它包装js数据存储并通过挂钩保存方法addValuesetValue.

在开始时您可以运行init(),它将从存储中获取数据并将其反序列化为 js。

于 2012-09-05T14:06:54.433 回答
2

我写了一些代码。它没有经过测试和运行,是用记事本写的。只是一个例子。可以为 cookie 更改方法 init 和 saveData。

   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 回答