更新面板CSV生成缓存问题

时间:2010-09-16 11:06:16

标签: asp.net asp.net-ajax

在按钮上单击更新面板的页面上,我已经放了一些代码来生成CSV。

当我单击“在文件中打开”对话框时,显示的CSV文件来自浏览器缓存。每次显示旧的csv.I已在服务器上检查csv文件是新创建的,但浏览器显示旧文件。

2 个答案:

答案 0 :(得分:1)

除了不切实际的解决方法外,您应该专注于更改服务器缓存控制设置,前提是您在Apache服务器上,然后使用以下命令更新.htaccess文件:

<filesMatch "\.(csv)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</filesMatch>

这将关闭.csv文件的缓存。

答案 1 :(得分:0)

避免这种情况的一种简单方法是在文件末尾添加一个随机字符串,例如

<强> /YourFile.csv?rnd=4707

或者您可以放置​​一些缓存标头以不让它缓存,例如

    Response.Cache.SetExpires(DateTime.UtcNow.AddYears(-4));
    Response.Cache.SetNoStore();
    Response.Cache.SetValidUntilExpires(false);
    Response.Cache.SetCacheability(HttpCacheability.NoCache);