我正在尝试创建一个 Dojox.app,它从服务器读取一次数据,然后在应用程序的生命周期内根据需要查询该数据。“dojo/store/JsonRest”将获取数据,“dojo/store/Memory”将用作缓存存储库。对于普通的 dojo 网页,创建缓存的过程很简单。
require(["dojo/store/JsonRest", "dojo/store/Memory", "dojo/store/Cache", "dojo/store/Observable"],
function(JsonRest, Memory, Cache, Observable){
masterStore = new JsonRest({
target: "/Inventory/"
});
cacheStore = new Memory({});
inventoryStore = new Cache(masterStore, cacheStore);
然而,对于 Dojox.app,config.json 文件用于设置各种 MVC 组件,包括数据存储。
json 文件的存储和模型部分可能类似于
"stores": {
"restStore":{
"type": "dojo/store/JsonRest",
"observable": true,
"params": {
"target": "/s/server/nowShowing.pl",
"idProperty": "filmNo"
}
},
"memoryStore": {
"type": "dojo/store/Memory",
"observable": true,
"params": {
"idProperty": "filmNo"
}
},
"filmStore": {
"type": "dojo/store/Cache",
"params": {
"masterStore": {"$ref":"#stores.restStore"},
"cachingStore": {"$ref":"#stores.memoryStore"},
"idProperty": "filmNo",
}
}
},
"models": {
"store": {
"modelLoader": "dojox/app/utils/mvcModel",
"type": "dojox/mvc/StoreRefController",
"params":{
"store": {"$ref":"#stores.filmStore"},
"query": {}
}
}
},
我知道缓存存储是一个包装器,而不是一个真正的存储。我也知道有一种方法可以通过 config.json 文件配置 dojo 存储缓存,但我无法找到如何去做。谷歌先生没有答案,道场测试也一片空白。
MVC 模型通过每个视图类的loadedStores 和loadedModels 参数使应用程序可以访问数据。