我想将搜索结果作为缓存存储在localStorage中。将Json存储在localStorage中
我想所有的缓存存储为一个localStorage的值:
localStorage.getItem('search-cache')
它里面我想有JSON对象,我可以添加属性和retreive他们。 不幸的是,它不起作用,localStorage没有更新json结果(它的值保持为'{}'
)。
我不是一个javascript专业人士,所以请指导我如何做好。
下面是当前的代码缓存结果:
var query = $(this).val();
var cache = JSON.parse(localStorage.getItem('search-cache'));
if (cache == null) {
cache = '[{}]';
}
if (cache[query] == null) {
$.getJSON('/api/guides/search?query=' + query, function (data) {
$.each(data, function (index, guide) {
$('#results').append('<li class="result-item">' + guide.Name + '</li>');
});
cache[query] = data;
localStorage.setItem('search-cache', JSON.stringify(cache));
});
}
else {
$.each(JSON.parse(localStorage.getItem('search-cache')[query]), function (index, guide) {
$('#results').append('<li class="result-item">' + guide.Name + '</li>');
});
}
谢谢,它确实工作! 此外,我从你的答案中学到了其他东西 - 语法和javascript的态度。 – 2013-02-23 21:14:55