javascript - jQuery.getJSON : how to avoid requesting the json-file on every refresh?(缓存)

标签 javascript jquery json caching getjson

在此示例中,您可以看到生成的 HTML 列表。每次刷新时,脚本都会请求数据文件 (ajax/test.json) 并再次构建列表。

生成的文件“ajax/test.json”被静态缓存。但是我怎样才能避免在每次刷新时都请求这个文件呢?

// source: jquery.com
$.getJSON('ajax/test.json', function(data) {
    var items = [];

    $.each(data, function(key, val) {
        items.push('<li id="' + key + '">' + val + '</li>');
    });

    $('<ul/>', {
        'class': 'my-new-list',
        html: items.
    }).appendTo('body');
});

不起作用:

list_data = $.cookie("list_data");
if (list_data == undefined || list_data == "") {
    $.getJSON('ajax/test.json', function(data) {
        list_data = data;
    });
}

var items = [];
$.each(data, function(key, val) {
    items.push('<li id="' + key + '">' + val + '</li>');
});

$('<ul/>', {
    'class': 'my-new-list',
    html: items.
}).appendTo('body');

提前致谢!

最佳答案

promise 如何?

var list_data = localStorage.getItem("list_data"),
          def = $.Deferred();

if (!list_data) {
    def = $.getJSON('ajax/test.json', function(data) {
        list_data = data;
        localStorage.setItem("list_data", JSON.stringify(list_data));
    });
}else{
    list_data = JSON.parse(list_data);
    def.resolve();
}

def.done(function() {
    var items = [];
    $.each(list_data, function(key, val) {
        items.push( $('<li />', {id: key, text: val}) );
    });

    $('<ul/>', {'class': 'my-new-list'}).html(items).appendTo('body');
});
​

我也只使用本地存储,如果要支持 IE7 或更低版本,请使用 MDN 上可用的填充程序!

关于javascript - jQuery.getJSON : how to avoid requesting the json-file on every refresh?(缓存),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13853016/

相关文章:

javascript - Jquery,按宽度调整图像大小,保持高度恒定

javascript - Ember.js - 如何在使用 ember-can 插件时获取能力源文件中的当前用户属性

javascript - 忽略出现在引号内的分隔符的 JS split() 函数

javascript - jQuery:如何将 div 内的串联元素与 div 的其余部分分开设置样式?

jQuery 帮助跳转滑动菜单

Java将json映射到两个对象

JavaScript 按钮切换

javascript - AngularJS 过滤器数组

json - FOR JSON 在 SQL Server Management Studio 中引发错误

json - REST:更新多条记录