#wordpress #progressive-web-apps #workbox
#wordpress #прогрессивные-веб-приложения #рабочий ящик
Вопрос:
У меня есть блог, и я хочу создать его версию для PWA. Я уже создал манифест, но меня немного смущают настройки работника службы. Я уже создал файл работника службы, но я не уверен, что он будет работать нормально. Я использовал руководства на веб-сайте Workbox. Я хочу, чтобы мой PWA был способен к предварительному кэшированию, первой сети, кэшированию изображений/js/css/шрифтов и т. Д., Автономной аналитике, фоновой и периодической синхронизации. Подходит ли мой код для этих функций?
Вот мой код работника службы:
// Yapi Tasarim Akademisi Service Worker importScripts('https://storage.googleapis.com/workbox-cdn/releases/5.1.2/workbox-sw.js'); workbox.setConfig({ debug: true, }); import { pageCache, imageCache, staticResourceCache, googleFontsCache, offlineFallback, } from 'workbox-recipes'; pageCache(); googleFontsCache(); staticResourceCache(); imageCache(); offlineFallback(); // Background sync import {BackgroundSyncPlugin} from 'workbox-background-sync'; import {registerRoute} from 'workbox-routing'; import {NetworkOnly} from 'workbox-strategies'; const bgSyncPlugin = new BackgroundSyncPlugin('myQueueName', { maxRetentionTime: 24 * 60 // Retry for max of 24 Hours (specified in minutes) }); registerRoute( //api/.*/*.json/, new NetworkOnly({ plugins: [bgSyncPlugin] }), 'POST' ); const statusPlugin = { fetchDidSucceed: ({response}) =gt; { if (response.status gt;= 500) { // Throwing anything here will trigger fetchDidFail. throw new Error('Server error.'); } // If it's not 5xx, use the response as-is. return response; }, }; // Add statusPlugin to the plugins array in your strategy. // Offline Analytics import * as googleAnalytics from 'workbox-google-analytics'; googleAnalytics.initialize(); // Pre-cache import {precacheAndRoute} from 'workbox-precaching'; precacheAndRoute([ {url: '/index.html', revision: '383676' }, {url: '/styles/app.0c9a31.css', revision: null}, {url: '/scripts/app.0d5770.js', revision: null}, // ... other entries ... ]);