现象:
第一次:web程序上传文件A,java后台经过相关的运算后输出 “A_结果” 文件;
第二此:web程序上传文件A(内容与第一次不一样),java后台经过相关的运算后输出 “A_结果” 文件;
发现第二次下载的文件与第一相同,即第二次的文件没有更新。
经排查发现是浏览器缓存的原因。
解决方案
1. 前台请求下载文件时增加时间戳参数,如此避免缓存
elemIF.src = 'url?参数&time="+(new Date()).getTime();
2. java后台通过response输出文件流时,在响应头增加 cache-control 。
response.addHeader("cache-control", "no-cache");
或者
response.addHeader("cache-control", "no-store");
关于 response 的 cacheControl相关知识可去这里学习。