我想将搜索结果作为缓存存储在 localStorage 中。
我想将所有缓存存储为一个 localStorage 值:
localStorage.getItem('search-cache')
在它里面我想有 JSON 对象,我可以添加属性并检索它们。不幸的是,它不起作用,并且 localStorage 没有用 json 结果更新(它的值一直是'{}'
)。
我不是 javascript proffesional 所以请指导我如何做好。
这是缓存结果的当前代码:
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>');
});
}