Titanium SDK版本:1.6。
iPhone SDK版本:4.2
我正在尝试在Appcelerator论坛上找到的缓存片段,但是我收到一个错误:[错误]脚本错误=无法找到变量:utils at cache.js(第9行)。
我把这个(http://pastie.org/1541768)放在一个名为cache.js的文件中,并在调用脚本中实现了这个代码(http://pastie.org/pastes/1541787),但是我得到了错误。
有什么问题?我完全复制了代码。
答案 0 :(得分:2)
你的问题是第一个牧师定义的utils.httpcache
。变量utils
未在此函数闭包之外定义(因为它未在全局命名空间中的任何位置定义)。如下所示。
(function() {
utils.httpcache = {
};
})();
要使其全部工作,请在此实例中将以下代码添加到cache.js文件的顶部。
var utils = {};
这声明了全局命名空间中的utils
变量。然后,当在下面执行函数闭包时,它会将utils.httpcache
添加到utils
对象。
问题实际上并不是特定于Appcelerator,而只是一个简单的JavaScript错误。结帐Douglas Crockfords book, JavaScript the Good Parts。阅读它会让你成为一个更棒的JavaScript开发人员。
答案 1 :(得分:0)
在将此代码添加到代码中之前,您无法使用utils.httpcache.getFromCache(url)
:
var utils = {};
那是因为作者如何创建他的函数,它被称为JavaScript模块模式,它通常用于构造代码。
答案 2 :(得分:0)
我好像失去了这个值“value.httpCacheExpire = expireTime;”当代码执行“Titanium.App.Properties.setString(key,JSON.stringify(value));”时所以当我使用getString方法返回时,不再是“value.httpCacheExpire。
其他人有这个问题吗?我错过了一些让这个工作的东西吗?