Spec-Zone.ru › Web APIs

ServiceWorkerRegistration: метод update()

Базовая поддержка Широко распространена

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2018 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.

Примечание: Эта функция доступна в Web Workers.

Метод update() интерфейса ServiceWorkerRegistration пытается обновить сервис-воркер. Он извлекает URL скрипта воркера и, если новый воркер не идентичен текущему воркеру байт за байтом, устанавливает новый воркер. Извлечение воркера обходит кэш браузера, если предыдущий запрос был выполнен более 24 часов назад.

Синтаксис

update()

Параметры

Нет.

Возвращаемое значение

Объект Promise, который разрешается с объектом ServiceWorkerRegistration.

Примеры

В следующем простом примере регистрируется пример сервис-воркера, затем добавляется обработчик события для кнопки, чтобы вы могли явно обновлять сервис-воркер по мере необходимости:

if ("serviceWorker" in navigator) {
  navigator.serviceWorker
    .register("/sw.js", { scope: "/" })
    .then((registration) => {
      // registration worked
      console.log("Registration succeeded.");
      button.onclick = () => {
        registration.update();
      };
    })
    .catch((error) => {
      // registration failed
      console.error(`Registration failed with ${error}`);
    });
}

Спецификации

Спецификация
Сервис-воркеры
# service-worker-registration-update

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
update
45["Начиная с Chrome 46, update() возвращает промис, который разрешается значением 'undefined', если операция выполнена успешно или обновления не было, и отклоняется, если обновление не удалось. Если новый воркер запущен, но установка не удалась, промис всё равно разрешается. Раньше это вызывало исключение.", "До Chrome 48 этот метод всегда обходил кэш браузера. Начиная с Chrome 48, он обходит кэш только тогда, когда проверка предыдущего сервис-воркера была произведена более чем 24 часа назад."]
17 44
32["Начиная с Opera 33, update() возвращает промис, который разрешается значением 'undefined', если операция выполнена успешно или обновления не было, и отклоняется, если обновление не удалось. Если новый воркер запущен, но установка не удалась, промис всё равно разрешается. Раньше это вызывало исключение.", "До Opera 35 этот метод всегда обходил кэш браузера. Начиная с Opera 35, он обходит кэш только тогда, когда проверка предыдущего сервис-воркера была произведена более чем 24 часа назад."]
11.1
45["Начиная с Chrome Android 46, update() возвращает промис, который разрешается значением 'undefined', если операция выполнена успешно или обновления не было, и отклоняется, если обновление не удалось. Если новый воркер запущен, но установка не удалась, промис всё равно разрешается. Раньше это вызывало исключение.", "До Chrome Android 48 этот метод всегда обходил кэш браузера. Начиная с Chrome Android 48, он обходит кэш только тогда, когда проверка предыдущего сервис-воркера была произведена более чем 24 часа назад."]
44
32["Начиная с Opera Android 33, update() возвращает промис, который разрешается значением 'undefined', если операция выполнена успешно или обновления не было, и отклоняется, если обновление не удалось. Если новый воркер запущен, но установка не удалась, промис всё равно разрешается. Раньше это вызывало исключение.", "До Opera Android 35 этот метод всегда обходил кэш браузера. Начиная с Opera Android 35, он обходит кэш только тогда, когда проверка предыдущего сервис-воркера была произведена более чем 24 часа назад."]
11.3
4.0["Начиная с Samsung Internet 5.0, update() возвращает промис, который разрешается значением 'undefined', если операция выполнена успешно или обновления не было, и отклоняется, если обновление не удалось. Если новый воркер запущен, но установка не удалась, промис всё равно разрешается. Раньше это вызывало исключение.", "До Samsung Internet 5.0 этот метод всегда обходил кэш браузера. Начиная с Samsung Internet 5.0, он обходит кэш только тогда, когда проверка предыдущего сервис-воркера была произведена более чем 24 часа назад."]
45["Начиная с WebView Android 46, update() возвращает промис, который разрешается значением 'undefined', если операция выполнена успешно или обновления не было, и отклоняется, если обновление не удалось. Если новый воркер запущен, но установка не удалась, промис всё равно разрешается. Раньше это вызывало исключение.", "До WebView Android 48 этот метод всегда обходил кэш браузера. Начиная с WebView Android 48, он обходит кэш только тогда, когда проверка предыдущего сервис-воркера была произведена более чем 24 часа назад."]

См. также

  • Использование Service Workers
  • Пример кода сервис-воркеров
  • Использование web workers

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/update

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API