Service Worker sind Skripte, die im Hintergrund einer Webanwendung ausgeführt werden, getrennt vom Hauptbrowser-Thread. Sie ermöglichen Push-Benachrichtigungen, Hintergrundsynchronisierung und Offline-Funktionen. Servicemitarbeiter fungieren als Vermittler zwischen der Webanwendung, dem Browser und dem Netzwerk. Hier finden Sie Beispiele, wie und wann Servicemitarbeiter eingesetzt werden können:
Wenn Sie eine Webseite besuchen, sendet die Webseite normalerweise eine Anfrage an den Server und der Server sendet die Daten an Sie zurück:
Wenn Sie einen Servicemitarbeiter registriert haben, wird dieser als Middleware zwischen dem Webbrowser und dem Server hinzugefügt:
Es stoppt die Anfrage an den Server und entscheidet, ob die Anfrage an den Server gesendet wird oder offline funktioniert. Und anstatt Ihnen in diesem Fall eine 404 Not Found-Seite anzuzeigen, können Sie die gesamte Seite offline anzeigen. Sie können auch benutzerdefinierte Offline-Seiten mit Servicemitarbeitern erstellen.
Wenn auf Ihrem Computer kein Internet vorhanden ist, wird eine Fehlerseite angezeigt.
Auch wenn kein Internet vorhanden ist, greifen wir mit einem Servicemitarbeiter auf die Webseite zu.
REGISTRIERUNG → INSTALLIEREN → AKTIVIEREN → ABHOLEN
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Home</title> <!-- Scripts --> <script src="main.js" defer></script> </head> <body> <!-- istalgan kodlaringizni yozishingiz mumkin... --> </body> </html>
Wir haben die Datei main.js mit HTML verbunden.
main.js
// service worker browser tomonidan support qilinishini tekshirib olamiz if ('serviceWorker' in navigator) { // web sahifa browserga yuklanishi bilan ishlashini aytib o'tamiz window.addEventListener('load', () => { // 1. service workerni registratsiyadan o'tkazamiz. navigator.serviceWorker .register('sw.js') // bizda sm.js file ochib olishimiz kerak bo'ladi. va bu yerdagi register ushani target qiladi. .then((registration) => console.log('Service Worker registered with scope:', registration.scope) ) .catch((error) => { console.error('Service Worker registration failed:', error); }); }); }
sw.js
// browser kashda qanday nom nilan saqlanishini bildirish uchun nom beramiz const cacheName = 'my-cache-v1'; // Qaysi fayllarni kashlashini aytib o'tib ketamiz const cacheFiles = ['index.html', 'posts.html', 'css/style.css', 'js/main.js']; // 2. INSTALL qilamiz self.addEventListener('install', (event) => { event.waitUntil( // kashdan biz bergan nom bilan joy ochadi va bizni fayllarimizni joylaydi. caches.open(cacheName).then((cache) => cache.addAll(cacheFiles)) ); }); // 3. ACTIVATE qilish self.addEventListener('activate', () => { console.log('Server worker activated'); }); // 4. FETCH, ya'ni oflayn holatimizda kashlangan fillarni ko'rsatish uchun olish self.addEventListener('fetch', (event) => { event.respondWith( caches .match(event.request) .then((response) => response || fetch(event.request)) ); });
Danach können wir sehen, dass die Aktivierung erfolgt ist, wenn wir zur Spalte „Anwendungen“ im Abschnitt „Entwicklungstools“ des Browsers gehen und den Abschnitt „Servicemitarbeiter“ sehen.
Wenn wir zum Cache-Speicherbereich gehen, erhalten wir die Dateien, die wir mit dem von uns angegebenen Namen markiert haben.
Und nachdem wir uns diese angesehen haben, können wir das Ergebnis sehen:
Wie Sie sehen, funktioniert es jetzt offline. Im Offline-Zustand ruft der Service Worker von dem für uns im Cache-Speicher geöffneten Speicherort ab.
@abdulakhatov-dev
@AbdulakhatovDev
Das obige ist der detaillierte Inhalt vonServicemitarbeiter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!