我正在一个网站上工作,我需要暂时保存一些字符串。
比如说我有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
提前致谢。
答案 0 :(得分: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();
});
答案 1 :(得分:1)
如果可能,请勿使用Cookie。在现代浏览器中有一个localStorage
。
此外,如果您正在使用某种结构,请为其创建js结构(数组,对象等)并使用它。
要保存到存储(cookie),请将此结构序列化为字符串,例如json。
我建议使用方法addValue
和getValue
创建js对象,它包装js数据存储并通过挂钩保存方法addValue
和setValue
以静默方式与永久存储同步。
一开始,您可以运行init()
,它将从存储中获取数据并将其反序列化为js。