MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.

Antarmuka ServiceWorker dari ServiceWorker API menyediakan referensi kepada service worker. Konteks multi browsing (mis. halaman, pekerja, dll.) dapat dikaitkan dengan service worker yang sama, masing - masing melalui objek ServiceWorker tersendiri.

Objek ServiceWorker tersedia di properti ServiceWorkerRegistration.active , dan properti ServiceWorkerContainer.controller  — ini adalah service worker yang aktif dan mengontrol halaman (service worker telah sukses terdaftar, dan halaman yang di kontrol telah di muat kembali.)

Antarmuka ServiceWorker terbagi sebagai rangkaian siklus event — install dan activate — dan fungsional event termasuk fetch. Objek ServiceWorker memiliki keterkaitan ServiceWorker.state, berdasarkan siklusnya.

Properti

Antarmuka ServiceWorker mewarisi properti dari induknya, Worker.

ServiceWorker.scriptURL Read only
Mengembalikan serialisasi script URL ServiceWorker didefinisikan sebagai bagian dari ServiceWorkerRegistration. URL harus dari origin yang sama dengan dokumen yang mendaftarkan ServiceWorker.
ServiceWorker.state Read only
Mengembalikan status keadaan service worker. Akan mengembalikan salah satu dari nilai berikut: installing, installed, activating, activated, atau redundant.

Event handlers

ServiceWorker.onstatechange Read only
Properti EventListener dipanggil setiap kali event type statechange di jalankan; Pada dasarnya dijalankan setiap ada perubahan pada ServiceWorker.state.

Method

Antarmuka ServiceWorker mewarisi method dari induknya, Worker, dengan pengecualian Worker.terminate — tidak harus dapat diakses dari service workers.

Contoh

Ini adalah potongan kode dari service worker registration-events sample (live demo). Kode memperhatikan setiap perubahan di ServiceWorker.state dan mengembalikan nilainya.

if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('service-worker.js', {
        scope: './'
    }).then(function (registration) {
        var serviceWorker;
        if (registration.installing) {
            serviceWorker = registration.installing;
            document.querySelector('#kind').textContent = 'Menginstall';
        } else if (registration.waiting) {
            serviceWorker = registration.waiting;
            document.querySelector('#kind').textContent = 'Mengunggu';
        } else if (registration.active) {
            serviceWorker = registration.active;
            document.querySelector('#kind').textContent = 'Aktif';
        }
        if (serviceWorker) {
            // logState(serviceWorker.state);
            serviceWorker.addEventListener('statechange', function (e) {
                // logState(e.target.state);
            });
        }
    }).catch (function (error) {
        // Terjadi kesalahan saat mendaftarkan. File service-worker.js
        // mungkin tidak tersedia atau terdapat sintaks yang error.
    });
} else {
    // Browser ini tidak mendukung service worker.
}

Spesifikasi

Spesifikasi Status Comment
Service Workers
The definition of 'ServiceWorker' in that specification.
Working Draft Definisi inisial
Fitur Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Dukungan dasar 40.0 44.0 (44.0)[1] No support 24 No support
Fitur Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Dukungan dasar No support No support 44.0 (44.0) (Yes) No support ? No support 40.0

[1] Service workers (dan Push) telah di nonaktifkan di Firefox 45 Extended Support Release (ESR.)

See also

Tag Dokumen dan Kontributor

 Kontributor untuk laman ini: bekti
 Terakhir diperbarui oleh: bekti,