Я пытаюсь ускорить критический сетевой путь на веб-сайте и узнаю о великом <link rel=preload
. Поэтому я пытаюсь предвидеть вызов, который выполняет мое одностраничное приложение, как только пикает JS, я вставил свой индекс. html
<link rel="preload" href="/api/searchItems" as="fetch" />
Затем, когда JS запускается, я сделать тот же вызов с помощью библиотеки axios
:
await axios.get(`/api/searchItems`, { params: queryParams });
Я бы ожидал, что вызов Ax ios мгновенно вернет предварительно загруженный файл JSON, но вместо этого я вижу это:
Как видите, один и тот же вызов загружается дважды. Что я делаю не так?
РЕДАКТИРОВАТЬ: Я добавил cache-control: public
и ничего не меняется. EDIT2: я также попробовал этот код вместо топора ios:
let data = await fetch('/api/searchItems')
.then(response => {
if (response.ok) {
return response.json();
}
throw new Error('HTTP error ' + response.status);
})
.catch(() => {
data = null; // Just clear it and if it errors again when
// you make the call later, handle it then
});
и ничего не изменилось