【问题标题】:JSON file cached when using flask使用烧瓶时缓存的 JSON 文件
【发布时间】:2018-02-17 07:13:01
【问题描述】:

我正在尝试用 js + python 做一个可视化应用程序。我的应用是这样工作的:

  1. 在浏览器中我有一个文本框,我在其中介绍了一个 url

  2. 我使用 Flask 将该 url 发送到 python

  3. 在 python 中,我获取该 URL,对其进行处理,然后创建一个 JSON 文件

  4. 在 js 中我获取那个 JSON 文件并在浏览器中显示结果

我遇到的问题:我在浏览器中引入url,点击提交,显示结果,这样就ok了。但是下次当我引入另一个 url 时,它显示的结果与以前相同,如果我引入另一个 url,仍然是相同的结果。因此 JSON 文件以某种方式缓存在某处。为了解决这个问题,我必须每次都删除旧的 JSON 文件并在 python 代码中重命名新的。

我的问题是,我应该把这个 JSON 文件放在哪里以防止缓存?还是有别的办法?

我有这个文件层次结构:

project
   |--- static
           |--- file.js
           |--- file.json
   |--- templates
           |--- file.html
   |--- file.py

这就是我想要做的:http://whichlight.github.io/reddit-network-vis/

【问题讨论】:

    标签: javascript python html json caching


    【解决方案1】:

    您有一个文件file.json 可以处理多个网址。这只有在您一次只与一个用户打交道时才有效。我假设您正在尝试缓存结果,为此您需要为每个 url 使用不同的文件。更好的方法是使用内存数据库,如 redis

    但是,如果您只想破坏缓存,那么不要在您的 ajax 调用中调用 file.json,而是像 file.json?t=<timestamp> 一样使用 file.json?<randomstring>

    $.ajax({
      dataType: "json",
      url: url + "?" + (new Date()).getTime(),
      data: data,
      success: success
    });
    

    【讨论】:

    • 在 py 代码中,我创建具有特定名称的 JSON 文件,并在 js 中读取该文件。 js中的时间戳会起作用吗?我的意思是,我需要将时间戳放在 py 中。
    • @AncaElena 您必须在执行期间将其放入 JS/AJAX 调用中。我在答案中添加了一个 jquery 示例。
    • 成功了!!!你救了我!对于新手应用程序,这是一个完美的解决方案。非常感谢!
    猜你喜欢
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多