iframe缓存中的PDF

时间:2014-10-30 08:19:31

标签: javascript c# jquery html asp.net

如何使用iframe动态打开多个pdf文件(根据客户端点击的内容一次一个)但不将其缓存在客户端计算机上,因为如果服务器上的文件内容发生了变化(添加了新的)例如,除非他/她清除浏览器的缓存文件,否则客户端仍将获得旧版本

3 个答案:

答案 0 :(得分:2)

在响应中添加标头以避免在下游服务器中缓存

HttpContext.Response.AppendHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
HttpContext.Response.AppendHeader("Pragma", "no-cache");
HttpContext.Response.AppendHeader("Expires", "0"); 

答案 1 :(得分:2)

如果您使用唯一查询字符串参数将pdl文件的后缀添加到pdf文件后,只要更改了pdf文件,您就会更改该文件,浏览器将单独缓存该文件的每个版本

示例:

更改http://site/myFile.pdf

http://site/myFile.pdf?v=f955b055-d551-4762-8313-a2417dc70568

答案 2 :(得分:1)

您需要禁用文件的响应缓存。对于ASP.NET MVC,它简单如下:

[OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)] // will be applied to all actions in Controller, unless those actions override with their own decoration
    public class FilesController : Controller
    {
        public ActionResult GetFile(string id)
        {
             return File();//do file 
        }
    }