【问题标题】:JS - Fetching JSON does not fetch latest file [duplicate]JS - 获取 JSON 不会获取最新文件 [重复]
【发布时间】:2019-07-25 21:36:10
【问题描述】:

我构建了一个 Chrome 扩展程序,它从我的网站获取一些 JSON 文件

function updateTestReport()
{
    fetch(http://somewebsite.com/file.json)
    .then(response => response.json())
    .then(data => {   

       //logic
    }); 
}

它工作正常,但是,假设我更新了我的网站(包括 file.json),但现在仍在获取“旧”版本,除非我使用 CTRL + F5 刷新我的网站,有没有办法获取文件的最新版本?

【问题讨论】:

    标签: javascript google-chrome google-chrome-extension fetch


    【解决方案1】:

    您可以通过添加查询字符串来防止缓存 json 文件

    function updateTestReport()
      {
        fetch(http://somewebsite.com/file.json?vr=1.0)
        .then(response => response.json())
        .then(data => {   
    
           //logic
        }); 
    }
    

    【讨论】:

    • 那么在这种情况下添加 ?vr=1.0 表示最新版本?谢谢你的回答
    • @Matim — 不。更改 URL 意味着浏览器将没有 URL 指向的数据的缓存副本。 ?vr=1.0 没有什么特别之处,它会导致浏览器针对该新 URL 缓存文件。每次要加载新数据时都需要更改 URL。正如这个答案所建议的那样,添加一个静态查询字符串不起作用
    • @Matim 只想在 Quentin 的答案之上添加。当你加入任何重大变化时,你可以增加数量
    • @brk — 发布新版本的 Chrome 扩展程序,并期望人们在每次网站上的数据更改似乎不合理时对其进行更新。
    • 所以如果我理解正确,我可以创建一个全局变量,每次获取时,我都会做 myVar++ 并且在链接中我可以使用:'somewebsite.com/file.json?vr=' + myVar; ?谢谢
    猜你喜欢
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多