发现公司里axios的封装的方法,Get请求类型带
?t=
,我以为是公司传统,也没注意。之后又看到一个项目请求项目内的js文件,用<script>
标签请求的,也带时间戳,就专门搜了下,发现跟浏览器缓存有关系。
export const GET = (url, params) => {
return axios.get(`${base}${url}` + '?t=' + new Date().getTime(), {
params: params
}).then(res => res.data);
};
for (var j = 0; j < js_array.length; j++) {
document.write('<script type="text/javascript" src="' + js_array[j] + '"></script>');
}
作用:
URL 的末尾追加了时间。这就确保了请求不会在它第一次被发送后即缓存,而是会在此方法每次被调用后重新创建和重发;此 URL 会由于时间戳的不同而稍微有些不同。这种技巧常被用于确保到脚本的 POST 每次都会实际生成新请求且 Web 服务器不会尝试缓存来自服务器的响应。
时间戳是加在对controller发起请求的URL中。
如1解释的,在URL中加时间戳就会保证每一次发起的请求都是一个不同于之前的请求,这样就能避免浏览器对URL的缓存