我正在尝试为慢速API请求配置缓存。我发现默认缓存配置不适用于我的情况。
我的Nginx服务器具有以下配置:
location /api/get_data_from_cache_with_timeout2sec {
expires 10m;
proxy_pass http://myapp;
}
服务器响应具有以下标头:
cache-control: max-age=600
expires: Mon, 29 Jun 2020 14:56:31 GMT
然后页面使用此代码发出AJAX请求(这只是一个简单的示例):
jQuery.get('/api/get_data_from_cache_with_timeout2sec', null,
function(data, status, xhr) {});
我希望它如何工作:
浏览器应识别出应缓存内容。浏览器应该从缓存中获取数据,并且第二个请求(使用浏览器缓存)的速度应该比100ms要快。
工作方式:
每次浏览器都花2秒钟来获取内容,并且浏览器不会尝试为该请求缓存内容,也不会为用户提供缓存中的内容。
我应该对配置或代码进行哪些更改,以使其可以在浏览器中缓存此类请求并使其更快?谢谢!
请找到您可以在其中复制示例页面(只需多次单击“立即检查”按钮): https://www.iwebtool.com/cache_example
答案 0 :(得分:0)
经过一番调查,我发现应该在浏览器能够缓存ajax请求数据之前执行以下命令:
$.ajaxSetup({ cache: true});
因此,此代码可以正常工作(带有缓存):
$.ajaxSetup({ cache: true});
jQuery.get('/api/get_data_from_cache_with_timeout2sec', null,
function(data, status, xhr) {});
我希望它会帮助别人。