【问题标题】:Can I prevent getJSON requests from running again when returning to page with this code?使用此代码返回页面时,我可以防止 getJSON 请求再次运行吗?
【发布时间】:2014-10-07 00:15:55
【问题描述】:

我正在使用这段代码来创建一些东西,包括创建链接。

我想在目标页面上创建一个链接(或使用后退按钮),这将允许用户返回到运行此代码的原始页面,而无需再次发出 getJSON 请求(除非该页面是故意刷新)。

我想提高性能,因为当用户返回原始页面时再次发出getJSON 请求。在 Chrome 中尤其如此,而我在 FF 中看到了相当不错的性能。 (是否有可能是 FF 正在缓存而 Chrome 没有?我该如何测试?)

数据在一段时间后过期并强制重新运行请求以刷新结果是可以的。

代码示例

$.when( $.getJSON(url0), $.getJSON(url1), $.getJSON(url2), $.getJSON(url3),$.getJSON(url4), $.getJSON(url5),$.getJSON(url6) ).done( function() {
    $.each(arguments, function(index, result) {
        var data = result[0];
        utcday =  data[0].createdOn;
        ltrDay = moment.utc(utcday).format("DD MMM YY");


$('#listDiv').append("<div class= \"ellipsis listItemDiv\" ><div class=\"ltrFolder\" ><a title= \"Past Editions of " + nwsltrNames[index] + "\" href = \"" + idString3 + nwsltrID[index] + "\"><i class=\"fa fa-folder-o\"></a></i></div><div id=\"" + data[0].id + "\"class= \"ellipsis listTitle\" style=\"font-size:1.2em;\">" + nwsltrNames2[index] + "<div class= \"ellipsis \"><a style=\"font-size:.8em;\"title= \"" + data[0].conversation + "\" class = \"addressClick\" id =\"" + nwsltrID[index] + "\"><span class =\"point\" ><i class=\"fa fa-newspaper-o\"></i></span>" + data[0].conversation + "</a><div class=\"ltgrey\" style=\"text-transform:uppercase;padding-top:3px;letter-spacing: normal;\">" + ltrDay + "</div></div></div><div class=\"txtHead\" >" + data[0].textHead + "</div>");
    });
});

【问题讨论】:

    标签: jquery json getjson


    【解决方案1】:

    将 json 存储在一个变量中。这将防止您再次请求相同的 json。

    【讨论】:

    • 感谢您的快速回复。您是否有机会向我指出如何使用此代码执行此操作的示例?
    • 这些 getJSON 调用被链接起来,因此返回了 7 个对象。抱歉,我只是不明白您提出的方法以及如何实施。非常感谢任何其他信息。
    • 第一次解析链后,只需将所有结果存储在一个数组中。下次直接从数组中读取即可。
    • 再次感谢您的建议,但在没有代码示例或指针的情况下解决这个问题超出了我的薪酬等级。
    猜你喜欢
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    相关资源
    最近更新 更多