X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/0494b8d9b9bb03ab6c22b34dae81261e3cd7e3e6..7a654f8d43fdb43d78b63d90528bed6e86b608cc:/src/data/proxy/SessionStorage.js?ds=sidebyside diff --git a/src/data/proxy/SessionStorage.js b/src/data/proxy/SessionStorage.js new file mode 100644 index 00000000..59f55110 --- /dev/null +++ b/src/data/proxy/SessionStorage.js @@ -0,0 +1,47 @@ +/** + * @author Ed Spencer + * @class Ext.data.proxy.SessionStorage + * @extends Ext.data.proxy.WebStorage + * + *

Proxy which uses HTML5 session storage as its data storage/retrieval mechanism. + * If this proxy is used in a browser where session storage is not supported, the constructor will throw an error. + * A session storage proxy requires a unique ID which is used as a key in which all record data are stored in the + * session storage object.

+ * + *

It's important to supply this unique ID as it cannot be reliably determined otherwise. If no id is provided + * but the attached store has a storeId, the storeId will be used. If neither option is presented the proxy will + * throw an error.

+ * + *

Proxies are almost always used with a {@link Ext.data.Store store}:

+ * +


+new Ext.data.Store({
+    proxy: {
+        type: 'sessionstorage',
+        id  : 'myProxyKey'
+    }
+});
+
+ * + *

Alternatively you can instantiate the Proxy directly:

+ * +

+new Ext.data.proxy.SessionStorage({
+    id  : 'myOtherProxyKey'
+});
+ 
+ * + *

Note that session storage is different to local storage (see {@link Ext.data.proxy.LocalStorage}) - if a browser + * session is ended (e.g. by closing the browser) then all data in a SessionStorageProxy are lost. Browser restarts + * don't affect the {@link Ext.data.proxy.LocalStorage} - the data are preserved.

+ */ +Ext.define('Ext.data.proxy.SessionStorage', { + extend: 'Ext.data.proxy.WebStorage', + alias: 'proxy.sessionstorage', + alternateClassName: 'Ext.data.SessionStorageProxy', + + //inherit docs + getStorageObject: function() { + return window.sessionStorage; + } +});