Правит ошибки в обработке события fetch в Service Worker#1346
Правит ошибки в обработке события fetch в Service Worker#1346monochromer wants to merge 3 commits intodoka-guide:mainfrom
Conversation
| if (!event.request.startsWith(self.location.origin) && event.request.method === 'POST') { | ||
| return new Response(fetch(event.request)) | ||
| if (url.origin !== self.location.origin) { | ||
| return |
There was a problem hiding this comment.
Чтобы Service Worker не обрабатывал запрос, достаточно досрочно вернуть undefined.
src/sw.js
Outdated
| } | ||
|
|
||
| // Игнорирует кеширование Service Worker | ||
| if (event.request.endsWith('sw.js')) { |
There was a problem hiding this comment.
Вообще, такая ситуация возможна только если кто-то сделает внутри основного кода fetсh('/sw.js').
src/sw.js
Outdated
| } | ||
|
|
||
| // Игнорирует кеширование страниц с параметрами GET запроса | ||
| if (event.request.indexOf('.html?') > -1 || event.request.indexOf('.js?') > -1) { |
There was a problem hiding this comment.
Тут можно было бы заменить такую проверку на что-то типа [...url.searchParams.keys()].legnth > 0 или url.searchParams.toString() !== ''
|
Превью контента из 1acdf59 опубликовано. |
src/sw.js
Outdated
| // Игнорирует кеширование Service Worker | ||
| if (event.request.endsWith('sw.js')) { | ||
| return new Response(fetch(event.request)) | ||
| if (url.endsWith('sw.js')) { |
There was a problem hiding this comment.
А раз уж у нас есть urlObject, то может лучше проверять urlObject.pathname === '/sw.js' ?
There was a problem hiding this comment.
Да, выглядит чище. Сделал так
src/sw.js
Outdated
| // Игнорирует кеширование страниц с параметрами GET запроса | ||
| if (event.request.indexOf('.html?') > -1 || event.request.indexOf('.js?') > -1) { | ||
| return new Response(fetch(event.request)) | ||
| if (url.indexOf('.html?') > -1 || url.indexOf('.js?') > -1) { |
There was a problem hiding this comment.
И тут, соответственно urlObject.search !== ''
|
Из-за ошибки обработки события После правки появляются дополнительные ошибки. Например, не подгружаются стили. |
В консоли есть ошибки типа: