Використання fetch() для HTTP запитів
fetch() usage
const conf = {
method: 'POST',
headers: {
'Content-Type': 'application/json;charset=utf-8',
'X-Header-My': 'header value',
'cache-control': 'no-cache',
},
body: JSON.stringify({foo: 'bar'})
};
const nocache = new Date().getTime() + '-' + (Math.random() + 1).toString(36).substring(7); // 1697705531397-mxz9s
const users = await fetch(`/url?nocache=${nocache}`).then(r => r.json()).then(data => data.users)
Обʼєкт типу Headers:
const headers = new Headers();
headers.append('cache-control', 'no-cache');
fetch() cache
// Ігнорувати кеш (cache busting), щоб повністю обійти кеш.
fetch('version.txt', {cache: 'no-store'});
// Ігнорувати поточний кеш (cache busting) та оновити HTTP cache.
fetch('version.txt', {cache: 'reload'});
// Ігнорувати поточний кеш (cache busting), коли маєте справу з належним чином налаштованим сервером, який надсилатиме правильні заголовки ETag і Date і належним чином оброблятиме заголовки запитів If-Modified-Since та If-None-Match, тому ми можемо покладатися на перевірку, щоб гарантувати свіжість відповіді.
fetch('version.txt', {cache: 'no-cache'});
// Надати перевагу кешованій, хоча й застарілій відповіді, щоб максимально зберегти пропускну здатність.
fetch('version.txt', {cache: 'force-cache'});
new Date().toISOString().slice(14, 19); // 30:58
(Math.random() + 1).toString(36).substring(7); // mxz9s
crypto.randomUUID() // 2500a7ef-0cb8-4ac3-81cf-1dd208376f9f
#fetch cache #fetch cache ignore #fetch cache busting