这可能是我忽略或不了解的一些“最佳做法”,所以请放轻松。
我有一个asp.net网站,用我的数据库表中的列填充gridview。其中一列被处理成另一台服务器上的word文档的链接。问题是,如果用户单击word文档进行查看,然后在远程服务器上更新该文档,则用户无法访问已更改的文档,直到其浏览器缓存被清除并且被迫转出到网络单击链接时抓取一个新副本。
基本上我想以某种方式强迫机器永远不要使用文档的缓存副本,但总是去网络获取最新的副本。
奖金问题:通过将文档存储在SharePoint中,可以更好地处理这个问题吗?
更新:在我的代码隐藏中使用Response.Cache.SetCacheability(HttpCacheability.NoCache);
我现在已经解决了FireFox中的问题,但IE8很奇怪。如果我更新文档然后左键单击它,它会在IE窗口中显示单词doc而不进行更改。但是,如果我进行更改,请保存它们,然后在文档中间单击以打开新选项卡,文档会反映更改。我大部分都在那里......
答案 0 :(得分:2)
尝试在链接中添加一些额外数据。这是一个使用js的例子;如果您正在构建url服务器端,它应该基本相同:
var url =“http://www.mydomain.com/mywordfile.doc?ts=”+(new Date())。getTime();
这会强制网址每次都有一个不同的查询网址,这(理论上)应该强制浏览器重新请求并重新下载它。
答案 1 :(得分:1)
你是否偶然看到了IE8?我们已经看到它显示了这种行为,其中缓存以前不是问题。
通常可以通过几个步骤清除它:明确告诉浏览器不要通过HTTP标头缓存,并立即使页面过期。 Google是“pragma no-cache”标题,通常需要添加几行来覆盖所有浏览器。