【问题标题】:jSON get request using local storage APIJSON 使用本地存储 API 获取请求
【发布时间】:2017-07-30 00:37:24
【问题描述】:

我想知道是否有人可以为我目前遇到的这个问题提供一些帮助。我对此完全陌生,不幸的是,教科书 Headfirst into Programming 并没有很好地解释这一点。我研究了许多stackoverflow,但无济于事。任何正确方向的帮助将不胜感激。谢谢!

任务是显示食物菜单以及下面的项目列表。

  1. 应使用通过 Ajax GETrequest 检索的 JSON 文件中的数据生成。
  2. 生成包含所需菜单项的 JSON 文件。
  3. 您决定如何显示菜单项。即有序列表、无序列表等。
  4. 使用 localStorge API 缓存来自 JSON 响应的数据
  5. 确保在缓存数据后不发出 GET 请求。
  6. 缓存数据时从 localStorage 中检索数据

我认为这是正确的获取请求?我知道我错过了一些东西,但老实说,这超出了我的想象。

function getStarterMenu() {
    $.get(
        'data/startersMenu.json',
        function (data) {
            //Something goes here?
        },
        'json'
        );
}

我这里有一个名为 startersMenu.json 的外部 json 文件

var startersMenu = {
"starters": [
{
"name": "Jumbo Lump Crab Cake",
"description": "Creole lobster sauce."
},

{
"name": "Bacon Wrapped Sea Scallops",
"description": "Chardonnay lemon sauce, Mango salsa."
},
{
"name": "Chilled Maine Lobster Cocktail",
"description": "Atomic cocktail sauce and lemon butter."
},
{
"name": "Coconut Shrimp",
"description": "three jumbo tiger shrimp, vanilla orange beurre blanc."
},
{
"name": "Crispy Point Judith Calamari",
"description": "Italian peppers and Bleu cheese Stuffed olives, Atomic cocktail sauce."
},
{
"name": "Oysters on the Half Shell",
"description": "shucked to order, mignonette and Atomic cocktail sauces."
}

]

}

【问题讨论】:

    标签: jquery json ajax local-storage


    【解决方案1】:
    for(var i=0; i<startersMenu.starters.length; i++){
    localStorage.setItem('name_'+i, JSON.stringify(startersMenu.starters[i].name));
    
    var nameString = localStorage.getItem("name_"+i);
    console.log(nameString);
    }
    

    通过这种方式,您可以使用本地存储存储数据并轻松检索..

    $.ajax({
                url: 'data/startersMenu.json',
                data: {
    
                },
                cache: false,            // you can set cache true or false here
    
             complete: function (jqXHR, textStatus) {
               // following statements 
    
            }
    });
    

    您选择的方法是更好的方法。你可以设置缓存 true 或 false 来存储缓存。

    使用这种方法对您有更好的帮助..

    【讨论】:

      【解决方案2】:

      在 ajax 调用成功响应后,您需要编写代码来存储您的 json 数据。请注意,在保存到本地存储之前,您需要对获得的 json 进行字符串化。 localStorage.setItem('key', JSON.stringify(json)); 然后,您可以每次在再次进行 ajax 调用之前检查您的本地存储。 localStorage['key'] 如果有数据,则从本地存储中获取数据,否则调用服务器获取数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-08
        • 1970-01-01
        • 2020-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-15
        相关资源
        最近更新 更多