使用config.json文件设置Dojox.app缓存的商店

时间:2014-06-12 04:22:07

标签: javascript json caching dojo dojox.app

我正在尝试创建一个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参数为应用程序提供对数据的广泛访问。

2 个答案:

答案 0 :(得分:0)

您可以在这里查看教程(dojox.app)dojox.app reference guide来创建dojo商店。

答案 1 :(得分:0)

我发现没有示例,演示或dojo测试,通过config.json将数据从文件读取到Memory存储中。 GitHub上的所有测试都将数据作为静态json嵌入到app结构中。

我需要一种方法来从服务器向我的应用程序获取动态显示数据。经过更多的研究,我找到了一个解决方法。事实证明,我并不需要使用" dojo / store / Cache"缓存数据。

三个简单的步骤。

  1. 通过添加
  2. 将json文件修改为JS文件

    var myJson = [{"filmNo":"2792",...

    1. 通过脚本链接
    2. 将数据读入应用程序

      <script type="text/javascript" src="/s/server/myJsonFile.js"></script>

      1. 在config.json文件中引用myJson变量
      2. "stores": { "filmStore": { "type": "dojo/store/Memory", "params": { "data" : "myJson", "idProperty": "filmNo" } }

        现在我的应用程序确实从视图拉链到视图