This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

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

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

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,