Caching Cache-won';不要在加速计中工作

Caching Cache-won';不要在加速计中工作,caching,appcelerator,Caching,Appcelerator,钛合金SDK版本:1.6。 iPhone SDK版本:4.2 我正在尝试在Appcelerator论坛上找到的缓存片段,但我得到一个错误:[error]Script error=在cache.js(第9行)上找不到变量:utils 我将这个()放在一个名为cache.js的文件中,并在调用脚本中实现了来自这个()的代码,但是我得到了错误 怎么了?我完全复制了代码。在将以下内容添加到代码之前,您不能使用utils.httpcache.getFromCache(url): var utils = {

钛合金SDK版本:1.6。
iPhone SDK版本:4.2

我正在尝试在Appcelerator论坛上找到的缓存片段,但我得到一个错误:[error]Script error=在cache.js(第9行)上找不到变量:utils

我将这个()放在一个名为cache.js的文件中,并在调用脚本中实现了来自这个()的代码,但是我得到了错误


怎么了?我完全复制了代码。

在将以下内容添加到代码之前,您不能使用
utils.httpcache.getFromCache(url)

var utils = {};

这是因为作者是如何创建他的函数的,它被称为JavaScript模块模式,通常用于构造代码。

您的问题在于,第一个Paste定义了
utils.httpcache
。变量
utils
未在此函数闭包之外定义(因为它未在全局命名空间中的任何位置定义)。如下图所示

(function() {
  utils.httpcache = {

  };
})();
在本例中,将以下代码添加到cache.js文件的顶部,使其正常工作

var utils = {};
这将在全局命名空间中声明
utils
变量。然后,当在下面执行函数闭包时,它会将
utils.httpcache
添加到
utils
对象中

这个问题实际上不是Appcelerator特有的,只是一个简单的JavaScript错误。结账阅读它会让你成为一个更棒的JavaScript开发人员。

当代码执行“Titanium.App.Properties.setString(key,JSON.stringify(value));”时,我似乎失去了这个值“value.httpCacheExpire=expireTime”;所以当我使用getString方法将它取回时,就不再有“value.httpCacheExpire”

还有其他人有这个问题吗?我是不是错过了一些让它工作的东西