【问题标题】:Refresh the browser cache for same call to an event updated file刷新浏览器缓存以对事件更新文件进行相同调用
【发布时间】:2015-01-01 16:07:08
【问题描述】:

这是我的场景

  1. Asp。网站

  2. 通过 IFrame 嵌入 Angular 应用

  3. 第一个用户单击 .net 按钮,该按钮将响应保存在服务器上的 .csv 文件中。每次点击都会更新文件上的不同数据

  4. 然后用户点击 angular 页面,该页面使用链接从该文件中获取数据。

现在问题在于缓存。因为每次引用相同的链接时,浏览器都会显示上一个请求中的数据,而不是实际读取更新的文件。
我知道它是缓存问题的原因是,当我在新浏览器上打开它时,我会看到更新的内容。在我以不同的请求第二次运行它后,它再次向我显示相同的数据

我已经试过了

$http.get(url, {cache: false}
Response.Cache.SetCacheability(HttpCacheability.NoCache); 

在我的 aspx page_load 函数上。

我怎样才能让它读取更新的文件?任何帮助将不胜感激

【问题讨论】:

    标签: javascript asp.net angularjs caching browser


    【解决方案1】:

    Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1)); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.Cache.SetNoStore();

    将此代码放入页面加载中。现在缓存中不会有数据了 浏览器会尝试从服务器获取页面

    【讨论】:

    • 不,它不起作用。我在 chrome 和 IE 上都试过了。让我再添加 1 件事。作为 iframe 中的角度页面,它位于 asp 多视图内容的第二个视图中。我在激活该视图的按钮上添加了上述代码,但仍然相同。
    【解决方案2】:

    不幸的是,我找不到任何解决问题的方法,因此我改变了逻辑。

    以下是我现在正在做的完美工作:

    1 Asp。网站

    2 通过 IFrame 嵌入的 Angular 应用

    3 第一个用户单击 .net 按钮,该按钮将响应保存在服务器上的 .csv 文件中。每次单击时,文件上都会更新不同的数据。所以,我添加了一个函数,在每次点击时将时间戳添加到文件名中

    4 通过查询字符串哈希值将文件发送到客户端脚本。添加文件名作为哈希值

    5 在客户端使用 $scope.$watch,观察 url 并在每个 url 更改时,获取文件名并从该位置加载数据。

    现在我又面临一个问题: Add hash to the current url without reload in c#

    如果有人可以帮我解决这个问题?

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-22
      • 2017-06-06
      • 2013-06-02
      • 2018-02-16
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-28
      相关资源
      最近更新 更多