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

时间:2011-04-12 09:14:17

标签: jquery load cache-control s-maxage

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

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

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

1 个答案:

答案 0 :(得分:1)

覆盖获取缓存结果的标准方法是将随机查询字符串附加到您获得的URL,如:

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

然后,您可以设置服务器标头以允许客户端缓存(例如Cache-Control: private - 或适用于您的应用程序的任何内容),并在您的javascript代码中决定您想要更改“随机”值的频率附加到您的URL以强制重新加载资源。