ExtJS 的 store 将所有数据保存在哪里
Posted
技术标签:
【中文标题】ExtJS 的 store 将所有数据保存在哪里【英文标题】:Where does ExtJS's store keeps all the data 【发布时间】:2013-11-18 09:45:01 【问题描述】:我想知道 ExtJS 将所有数据保存在哪里?我知道数据存储在内存中,但我想知道它是在内部使用 html 5 本地存储还是使用了任何其他技术?
谢谢, 深入了解
【问题讨论】:
【参考方案1】:视情况而定。
在任何情况下,商店的数据都存储在 javascript 对象中。商店通过代理保存其数据。如何存储这些数据是一个配置问题。您可以配置不同类型的代理:
客户端存储
LocalStorageProxy - 如果浏览器支持,则将其数据保存到 localStorage SessionStorageProxy - 如果浏览器支持,则将其数据保存到 sessionStorage MemoryProxy - 仅在内存中保存数据,刷新页面时所有数据都会丢失服务器端存储
Ajax - 向同一域中的服务器发送请求 JsonP - 使用 JSON-P 向不同域上的服务器发送请求 Rest - 使用 RESTful HTTP 方法 (GET/PUT/POST/DELETE) 与服务器通信 直接 - 使用 Ext.direct.Manager 发送请求更多详情请联系in the docs。
【讨论】:
感谢您的回答。使用 LocalStorageProxy 和 SessionStorageProxy 时,即使页面被引用,系统是否会持久化数据? 是的,对于 SessionStorage,数据会一直保存到会话被销毁,对于 LocalStorage,数据会一直保存到用户清除 HTML5 LocalStorage 缓存。 感谢您的快速回复。我还有一个问题。如何在 ExtJs 上下文中定义会话? sessionStorage 与 Ext 无关。 w3schools.com/html/html5_webstorage.asp 说:sessionStorage 对象等于 localStorage 对象,只是它只存储一个会话的数据。当用户关闭浏览器窗口时,数据被删除。 我不使用这个,我在我的项目中使用服务器端存储。所以我没有本地和会话存储方面的经验【参考方案2】:数据存储在称为MixedCollection
的内存集合中。它是一个有序的集合,但它也允许你按键查找数据,所以它就像一个有序的 hashmap。
【讨论】:
以上是关于ExtJS 的 store 将所有数据保存在哪里的主要内容,如果未能解决你的问题,请参考以下文章