1.
return caches.match(url).then(function(response) {
Есть ошибка: вы должны вызывать cache.match, чтобы сопоставить интересующий вас кеш. Не cacheS с "s":)
2.
Если вы всегда обновляете имя кеша
// To update the version of the serviceworker:
var CACHE_NAME = 'swwo-cache-v143';
, тогда ни один из ранее извлеченных и кэшированных ресурсов не будет найден, верно?
Помните: браузер считает скрипт SW новым, даже если в файле скрипта SW изменяется даже SINGLE BYTE, поэтому любое изменение в ресурсах, которые вы хотите кэшировать, сделает ПО новым браузером.Вам не нужно нигде хранить отдельный номер версии, если он вам ни для чего не нужен.Здесь это, кажется, вызывает проблему.Вы можете указать номер версии в комментарии, если хотите, чтобы он был.
Также следует отметить одну вещь: если вам не нужен SW для регистрации / обновления как можно скорее, вы можете отложить его.Используйте setTimeout, чтобы отложить регистрацию SW на 15 секунд или что-то еще, чтобы пользователь мог использовать страницу как можно скорее.Это делает приложение более плавным.