我正在使用jQuery的加载函数从我的服务器获取图像(图形)。该图是从受基本身份验证保护的REST API接收的。图像位于当前设置中,标题为Cache-Control max-age = 0。如果我直接从浏览器调用图像URL,则会受到尊重。但是当使用jQuery的加载函数时,它会被缓存。
我不想每次都获得一个新的图像,因为它需要在服务器上进行一些繁重的计算,并且因为图表显示实时数据,所以长时间缓存是不需要的。我将使用max-age = 30或60以后。
我知道jQuery的ajax函数有一个缓存选项。但是这个选项只能设置为true或false,而这不是我想要的。
答案 0 :(得分:1)
覆盖获取缓存结果的标准方法是将随机查询字符串附加到您获得的URL,如:
$(this).attr('src', url + '?randomval=' + (new Date).getTime() );
然后,您可以设置服务器标头以允许客户端缓存(例如Cache-Control: private
- 或适用于您的应用程序的任何内容),并在您的javascript代码中决定您想要更改“随机”值的频率附加到您的URL以强制重新加载资源。