我尝试通过使用fetch调用网址来获取新的数据列表。该网址返回一个json。按照这些链接fetch(), how do you make a non-cached request?和https://hacks.mozilla.org/2016/03/referrer-and-cache-control-apis-for-fetch/中描述的说明,我构建以下init对象。
const headers = new Headers();
headers.append('pragma', 'no-cache');
headers.append('cache-control', 'no-cache');
const init = {
method: 'GET',
headers: headers,
cache: 'reload',
};
但是在将其添加为获取方法的第二个参数之后,返回数据不包括最近添加的数据,因此我认为这是由于缓存所致。
完整的示例如下
function getYears() {
const id = getId();
const request = new Request(`index.php?ep=name&id=${id}`);
const headers = new Headers();
headers.append('pragma', 'no-cache');
headers.append('cache-control', 'no-cache');
const init = {
method: 'GET',
headers: headers,
cache: 'reload',
};
fetch(request, init)
.then(response => response.json())
.then(json => {
window.yearCollection = years;
})
.catch(error => {
console.log(error.message);
});
}
逻辑流程如下,在加载页面时,将调用getYears()方法,然后在以表格形式发送数据时,将重新加载页面。这里的年份列表未更新,我必须手动刷新页面,以获取包含更新数据的列表