jQuery加载函数忽略Cache-Control max-age



我使用jQuery的加载函数从我的服务器获取图像(图形)。该图是从受基本身份验证保护的REST API接收的。图像在当前设置中返回,标题为Cache-Control max-age=0。如果我直接从浏览器调用图像url,这是值得尊重的。但是当使用jQuery的load函数时,它会被缓存。

我不想每次都得到一个新图像,因为它需要在服务器上进行一些繁重的计算,并且因为图形显示的是实时数据,所以不需要长时间的缓存。我稍后会使用max-age=30或60。

我知道jQuery的ajax函数有一个缓存选项。但是这个选项只能设置为true或false,这不是我想要的。

重写获取缓存结果的标准方法是在获取的URL后面附加一个随机查询字符串,如:

$(this).attr('src', url + '?randomval=' + (new Date).getTime() );

你可以设置服务器头允许客户端缓存(例如Cache-Control: private -或任何适合你的应用程序),并决定在你的javascript代码多久你想改变"随机"值附加到你的URL强制资源重新加载。

相关内容

  • 没有找到相关文章

最新更新