外部JS外部状态。经理只有Coockie供应商。Cookie只能容纳4096个字节,如果我的网格或树有很多列,它就会溢出4096个比特,无法保存状态。另一个问题是,每一个对服务器的请求都会发送请求中的所有cookie,所以Apache或其他web服务器不允许使用大型cookie。我想使用Provider在localStorage中保存数据。有现成的解决方案吗?还是我必须写?
llmtgqce1#
这里是我现在使用的变通方法,但可能还有更复杂的解决方案吗?
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; } }));
e4eetjau2#
Ext.state.LocalStorageProvider类已添加到2011年3月30日发布的Ext JS 4 Beta 1中的ExtJS中。请参阅原始文档和实施以及截至2022年3月11日的当前Docs和Implementation。
Ext.state.LocalStorageProvider
Ext.state.Manager.setProvider(new Ext.state.LocalStorageProvider());
2条答案
按热度按时间llmtgqce1#
这里是我现在使用的变通方法,但可能还有更复杂的解决方案吗?
e4eetjau2#
Ext.state.LocalStorageProvider
类已添加到2011年3月30日发布的Ext JS 4 Beta 1中的ExtJS中。请参阅原始文档和实施以及截至2022年3月11日的当前Docs和Implementation。