@niknik_ykt
Не понимаю почему все это работает.

Почему не подтягивается существующий файл?

Делаю pwa для сайта, но
сервис воркер не подтягивается из гугла
63c1da83493c1920896429.png
. Создал файл в корневой директории с правами rw-r--r--, но
файл все равно не подтягивается
63c1db0908f6e466812768.png
. Но в обеих случаях файл спокойно открывается в браузере по ссылке (копи-пасте). В чем может быть дело?
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
sfi0zy
@sfi0zy
Creative frontend developer
Ошибка importScripts is not defined не говорит о том, что файла не существует. Она говорит о том, что функции importScripts нет в том контексте, в котором все выполняется. В стандартном глобальном Window ее нет. В WorkerGlobalScope она есть. Нужно убедиться в том, в каком контексте выполняется ваш код. Что есть self в вашем коде. Тут многое зависит от того, как вы делаете свое приложение и как создаются эти воркеры (в некоторых фреймворках может своя локальная магия происходить). Есть неиллюзорная вероятность, что ваш код воркера загружается два раза. И запускается два раза. И первый раз он запускается в основном потоке, где self - это получается window. Если это так, то можно сделать запуск кода воркера из тупой проверки-заглушки, что-нибудь вроде:
if (typeof importScripts === 'function') {
    importScripts('......js');
    // и все остальное тут
}

Это сомнительная практика, т.к. по идее этот код должен запускаться один раз с нужным контекстом, и мы лечим симптомы, а не изначальную болезнь, но она может решить проблему.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы