如果我有一个商店,就像这个例子:
var myStore = Ext.create("Ext.data.Store", {
model: "User",
proxy: {
type: "ajax",
url : "/users.json",
reader: {
type: "json",
rootProperty: "users"
}
},
autoLoad: true
});
我想在应用程序缓存中缓存users.json
文件,因此我将其添加到app.json
,如下所示:
/**
* Used to automatically generate cache.manifest (HTML 5 application cache manifest) file when you build
*/
"appCache": {
/**
* List of items in the CACHE MANIFEST section
*/
"cache": [
"index.html",
"users.json"
],
/**
* List of items in the NETWORK section
*/
"network": [
"*"
],
/**
* List of items in the FALLBACK section
*/
"fallback": []
},
在Chrome开发者工具中,我可以看到.json文件已经与index.html正确地添加到应用程序缓存中。
我希望这能“离线工作”。不幸的是,它没有尝试请求json文件,该文件在离线时不起作用,然后它不再在应用程序中使用该数据。
应用程序的其余部分完全正常。有什么想法吗?
答案 0 :(得分:0)
通过查看API文档并使用属性进行一些试验和错误,找到了解决方案。这根本不明显。
问题是,对.json文件的请求附加了附加参数?dc=XXXXXXX
和分页参数。需要将两个其他属性应用于代理:noCache
和enablePagingParams
。这就行了。
var myStore = Ext.create("Ext.data.Store", {
model: "User",
proxy: {
type: "ajax",
url : "/users.json",
noCache: false,
enablePagingParams: false,
reader: {
type: "json",
rootProperty: "users"
}
},
autoLoad: true
});
我还需要更新test cache.manifest文件中的标题注释,以确保正确检测到对商店的更改,因为我不断收到Loader错误。一旦您使用sencha CMD构建生产版本,这不是问题,因为它会为您自动生成应用程序缓存文件。
注意:我的app.js文件中已经有以下内容,广泛记录:
Ext.Loader.setConfig({
disableCaching: false
});
希望这有助于某人!