0

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

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

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

4

1 回答 1

1

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

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

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

于 2011-04-12T09:23:56.053 回答