2011-05-11 76 views

回答

1

Ext.state.Provider是状态提供程序实现的抽象基类。目前的ExtJS版本只有一个存储提供商,即CookieProvider

您可以通过继承Provider类并实现HTML 5存储机制来创建存储提供程序。这里是一个可能的骨架代码:

Ext.define('Ext.state.LocalStoreProvider', { 
    extend: 'Ext.state.Provider', 

    constructor : function(config){ 
     // 1. set default values 
     // 2. Check if HTML5 storage is supported? 
     // 3. load existing values 
    }, 


    set : function(name, value){ 
     localStorage.setItem(name, value); 
    }, 

    get : function(name,default) { 

     var val = localStorage[name]; 
     if(val) 
      return val; 
     else 
      return default; 
    }, 

    clear : function(name){ 
     localStorage.removeItem(name); 
    }, 

    decodeValue : function(val) { 

     // Logic to decode an encoded data 
    }, 

    encodeValue : function(val) { 

     // Logic to encode a string data 
    } 

}); 

注意:该代码是不完整的,也没有进行测试,并且需要更多的逻辑被执行之前。这可以作为一个起点。

+0

谢谢,非常好的开始点。 – Alexandr 2011-05-13 08:32:51