首页 > 解决方案 > 除非我在浏览器中刷新 JSON 文件,否则 Javascript (jQuery) 加载的 JSON 不会更新

问题描述

所以我正在加载 JSON 文件 movies.json 以便获取它的数据。数据是通过 POST 请求提交的,我可以确认自动更新它就好了。无论如何,当我将值设置为 Javascript 数组时,它不会在页面上自动更新。例如,控制台输出显示了之前的 JSON。要解决此问题,我需要手动转到浏览器中的 json 文件,然后刷新页面。然后,当我刷新希望显示我的 json 值的页面时,它就可以工作了。谁能帮我解决这个问题?我对 Javascript 还很陌生。

$(document).ready(function) {
    $.getJSON("{{ url_for('static', filename='movies.json') }}", function(json){
        var data = [];
        $.each(json, function (index, value) {
            data.push(value); // Puts the JSON values into an array
        });

        console.log(data) // Logs the Array
        var output = document.getElementById('movie'); // Sets output to the movie div
        output.innerHTML = data[0]; // Sets the value to the title of the movie
    });
});

例如,这会输出“复仇者联盟:无限战争”,这也可以在我的 JSON 文件中看到。但是如果我发送另一个帖子请求说“蝙蝠侠和罗宾”,它仍然会输出“复仇者联盟:无限战争”,而我的实际 JSON 文件准确地说是“蝙蝠侠和罗宾”

标签: javascriptjqueryjson

解决方案


所以我解决了这个问题。我发现我的 JSON 文件正在被缓存,并且清除我的缓存解决了这个问题。所以我环顾四周,发现这篇内容非常丰富的文章。

因此,每次搜索我的 json 文件时,我都必须为其添加一个唯一 ID。我更新的代码如下所示:

$.getJSON("{{ url_for('static', filename='movies.json') }}?id={{ movie_id }}", function(json) {

推荐阅读