我正在尝试创建一个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参数为应用程序提供对数据的广泛访问。
答案 0 :(得分:0)
您可以在这里查看教程(dojox.app)和dojox.app reference guide来创建dojo商店。
答案 1 :(得分:0)
我发现没有示例,演示或dojo测试,通过config.json将数据从文件读取到Memory存储中。 GitHub上的所有测试都将数据作为静态json嵌入到app结构中。
我需要一种方法来从服务器向我的应用程序获取动态显示数据。经过更多的研究,我找到了一个解决方法。事实证明,我并不需要使用" dojo / store / Cache"缓存数据。
三个简单的步骤。
var myJson = [{"filmNo":"2792",...
<script type="text/javascript" src="/s/server/myJsonFile.js"></script>
"stores": {
"filmStore": {
"type": "dojo/store/Memory",
"params": {
"data" : "myJson",
"idProperty": "filmNo"
}
}
现在我的应用程序确实从视图拉链到视图