| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | 
							- <!DOCTYPE html>
 
- <html>
 
- <head>
 
-   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
-   <title>The source code</title>
 
-   <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
 
-   <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
 
-   <style type="text/css">
 
-     .highlight { display: block; background-color: #ddd; }
 
-   </style>
 
-   <script type="text/javascript">
 
-     function highlight() {
 
-       document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
 
-     }
 
-   </script>
 
- </head>
 
- <body onload="prettyPrint(); highlight();">
 
-   <pre class="prettyprint lang-js"><span id='Ext-data-proxy-LocalStorage'>/**
 
- </span> * @author Ed Spencer
 
-  *
 
-  * The LocalStorageProxy uses the new HTML5 localStorage API to save {@link Ext.data.Model Model} data locally on the
 
-  * client browser. HTML5 localStorage is a key-value store (e.g. cannot save complex objects like JSON), so
 
-  * LocalStorageProxy automatically serializes and deserializes data when saving and retrieving it.
 
-  *
 
-  * localStorage is extremely useful for saving user-specific information without needing to build server-side
 
-  * infrastructure to support it. Let's imagine we're writing a Twitter search application and want to save the user's
 
-  * searches locally so they can easily perform a saved search again later. We'd start by creating a Search model:
 
-  *
 
-  *     Ext.define('Search', {
 
-  *         fields: ['id', 'query'],
 
-  *         extend: 'Ext.data.Model',
 
-  *         proxy: {
 
-  *             type: 'localstorage',
 
-  *             id  : 'twitter-Searches'
 
-  *         }
 
-  *     });
 
-  *
 
-  * Our Search model contains just two fields - id and query - plus a Proxy definition. The only configuration we need to
 
-  * pass to the LocalStorage proxy is an {@link #id}. This is important as it separates the Model data in this Proxy from
 
-  * all others. The localStorage API puts all data into a single shared namespace, so by setting an id we enable
 
-  * LocalStorageProxy to manage the saved Search data.
 
-  *
 
-  * Saving our data into localStorage is easy and would usually be done with a {@link Ext.data.Store Store}:
 
-  *
 
-  *     //our Store automatically picks up the LocalStorageProxy defined on the Search model
 
-  *     var store = Ext.create('Ext.data.Store', {
 
-  *         model: "Search"
 
-  *     });
 
-  *
 
-  *     //loads any existing Search data from localStorage
 
-  *     store.load();
 
-  *
 
-  *     //now add some Searches
 
-  *     store.add({query: 'Sencha Touch'});
 
-  *     store.add({query: 'Ext JS'});
 
-  *
 
-  *     //finally, save our Search data to localStorage
 
-  *     store.sync();
 
-  *
 
-  * The LocalStorageProxy automatically gives our new Searches an id when we call store.sync(). It encodes the Model data
 
-  * and places it into localStorage. We can also save directly to localStorage, bypassing the Store altogether:
 
-  *
 
-  *     var search = Ext.create('Search', {query: 'Sencha Animator'});
 
-  *
 
-  *     //uses the configured LocalStorageProxy to save the new Search to localStorage
 
-  *     search.save();
 
-  *
 
-  * # Limitations
 
-  *
 
-  * If this proxy is used in a browser where local storage is not supported, the constructor will throw an error. A local
 
-  * storage proxy requires a unique ID which is used as a key in which all record data are stored in the local 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.
 
-  */
 
- Ext.define('Ext.data.proxy.LocalStorage', {
 
-     extend: 'Ext.data.proxy.WebStorage',
 
-     alias: 'proxy.localstorage',
 
-     alternateClassName: 'Ext.data.LocalStorageProxy',
 
-     
 
-     //inherit docs
 
-     getStorageObject: function() {
 
-         return window.localStorage;
 
-     }
 
- });</pre>
 
- </body>
 
- </html>
 
 
  |