【发布时间】:2011-09-24 14:37:37
【问题描述】:
这就是我正在做的,
获取对我的网络服务器的请求,响应是 json 格式。使用 jquery 模板在我的应用程序中呈现该回调数据。非常简单,就像一个魅力。
问题是:我想在本地存储一些数据,这样我的应用就不必每次都从服务器获取它(3g 很慢,每笔交易都会伤害我的用户体验......)。所以这是我尝试过的:
$.ajax({
url: app_domain + '/pages/home.json',
type: 'get',
datatype: 'json',
data: { mobile: "1" },
async: true,
cache: false,
success: function(data) {
//store locally
localStorage.setItem('foo', data);
//grab from local store
var bar = localStorage.getItem('foo');
// populate template with data
$.tmpl("cityTemplate", bar).appendTo('#all');
...
这失败了。 (我意识到代码很愚蠢,只是为了方便调试,直到我让它工作)
如果我做一个简单的
alert(foo);
获取本地存储的数据后,我看到了类似
[object, Object],[object, Object],[object, Object],...,[object, Object]
如果我这样做了
alert(foo[0])
我明白了
'['
如果我这样做了
alert(foo[0].name);
我明白了
'undefined'
所以,我最好的猜测是,这是由于通过 localStorage 存储时数据格式从 json 更改为字符串造成的。你会同意吗?而且,如果是这样,我该怎么做才能将其恢复为 json 格式?
非常感谢!
【问题讨论】:
标签: javascript jquery ajax json cordova