Ext JS Ext.state.Manager只有Coockie提供者。 Cookie只能容纳4096个叮咬,如果我的网格或树有很多列 - 它会溢出4096个叮咬并且无法保存状态。 另一个问题 - 每个服务器请求都会在请求中发送所有cookie,因此Apache或anoter Web服务器不允许使用大量cookie。
我想使用Provider在localStorage中保存数据。有没有现成的解决方案或者我必须写它?
答案 0 :(得分:4)
这是我现在使用的解决方法,但可能是更复杂的解决方案?
Ext.state.Manager.setProvider(new Ext.state.CookieProvider({
setCookie : function(name, value){
var me = this;
localStorage.setItem(me.prefix+name,me.encodeValue(value));
},
clearCookie : function(name){
var me = this;
localStorage.removeItem(me.prefix+name);
},
readCookies : function(){
var prefix = this.prefix,
len = prefix.length,
cookies = {};
keys = Object.keys(localStorage),
i = 0;
for (; i < keys.length; i++) {
console.log(keys[i].substring(0, len));
if (keys[i] && keys[i].substring(0, len) == prefix){
cookies[keys[i].substr(len)]= this.decodeValue(localStorage.getItem(keys[i]));
}
}
return cookies;
}
}));