ServiceWorkerGlobalScope
The ServiceWorkerGlobalScope interface of the Service Worker API represents the global execution context of a service worker.
Developers should keep in mind that the ServiceWorker state is not persisted across the termination/restart cycle, so each event handler should assume it's being invoked with a bare, default global state.
Once successfully registered, a service worker can and will be terminated when idle to conserve memory and processor power. An active service worker is automatically restarted to respond to events, such as fetch (en-US) or message (en-US).
Additionally, synchronous requests are not allowed from within a service worker — only asynchronous requests, like those initiated via the fetch() method, can be used.
This interface inherits from the WorkerGlobalScope (en-US) interface, and its parent EventTarget.
Instance properties
This interface inherits properties from the WorkerGlobalScope (en-US) interface, and its parent EventTarget.
ServiceWorkerGlobalScope.clients읽기 전용-
Contains the
Clientsobject associated with the service worker. ServiceWorkerGlobalScope.registration(en-US) 읽기 전용-
Contains the
ServiceWorkerRegistrationobject that represents the service worker's registration.
Instance properties inherited from WorkerGlobalScope
ServiceWorkerGlobalScope.caches(en-US) 읽기 전용-
Returns the
CacheStorage(en-US) object associated with the current context. This object enables functionality such as storing assets for offline use, and generating custom responses to requests. ServiceWorkerGlobalScope.console(en-US) 읽기 전용 비표준-
Returns the
consoleassociated with the worker. ServiceWorkerGlobalScope.fonts(en-US) 읽기 전용-
Returns the
FontFaceSet(en-US) associated with the worker. ServiceWorkerGlobalScope.indexedDB(en-US) 읽기 전용-
Provides a mechanism for applications to asynchronously access capabilities of indexed databases; returns an
IDBFactory(en-US) object. ServiceWorkerGlobalScope.isSecureContext(en-US) 읽기 전용-
Returns a boolean indicating whether the current context is secure (
true) or not (false). ServiceWorkerGlobalScope.location(en-US) 읽기 전용-
Returns the
WorkerLocation(en-US) associated with the worker.WorkerLocationis a specific location object, mostly a subset of theLocationfor browsing scopes, but adapted to workers. -
Returns the
WorkerNavigator(en-US) associated with the worker.WorkerNavigatoris a specific navigator object, mostly a subset of theNavigatorfor browsing scopes, but adapted to workers. ServiceWorkerGlobalScope.origin(en-US) 읽기 전용-
Returns the global object's origin, serialized as a string.
ServiceWorkerGlobalScope.performance(en-US) 읽기 전용-
Returns the
Performance(en-US) object associated with the worker, which is a regular performance object, but with a subset of its properties and methods available. ServiceWorkerGlobalScope.scheduler(en-US) 읽기 전용-
Returns the
Scheduler(en-US) object associated with the current context. This is the entry point for using the Prioritized Task Scheduling API. ServiceWorkerGlobalScope.self(en-US)-
Returns an object reference to the
ServiceWorkerGlobalScopeobject itself.
Instance methods
This interface inherits methods from the WorkerGlobalScope (en-US) interface, and its parent EventTarget.
ServiceWorkerGlobalScope.skipWaiting()-
Allows the current service worker registration to progress from waiting to active state while service worker clients are using it.
Inherited from WorkerGlobalScope
ServiceWorkerGlobalScope.atob()-
Decodes a string of data which has been encoded using base-64 encoding.
ServiceWorkerGlobalScope.btoa()-
Creates a base-64 encoded ASCII string from a string of binary data.
ServiceWorkerGlobalScope.cancelAnimationFrame()-
Cancels a callback scheduled by requestAnimationFrame.
ServiceWorkerGlobalScope.clearInterval()(en-US)-
Cancels the repeated execution set using
setInterval. ServiceWorkerGlobalScope.clearTimeout()-
Cancels the repeated execution set using
setTimeout. ServiceWorkerGlobalScope.dump()(en-US) 지원이 중단되었습니다 비표준-
Writes a message to the console.
ServiceWorkerGlobalScope.importScripts()(en-US)-
Imports one or more scripts into the worker's scope. You can specify as many as you'd like, separated by commas. For example:
importScripts('foo.js', 'bar.js'); ServiceWorkerGlobalScope.requestAnimationFrame()-
Requests the browser to execute a callback function before painting the next frame.
ServiceWorkerGlobalScope.setInterval()-
Schedules the execution of a function every X milliseconds.
ServiceWorkerGlobalScope.setTimeout()-
Sets a delay for executing a function.
Events
activate(en-US)-
Occurs when a
ServiceWorkerRegistrationacquires a newServiceWorkerRegistration.activeworker. backgroundfetchabort(en-US) Experimental-
Fired when a background fetch operation has been canceled by the user or the app.
backgroundfetchclick(en-US) Experimental-
Fired when the user has clicked on the UI for a background fetch operation.
backgroundfetchfail(en-US) Experimental-
Fired when at least one of the requests in a background fetch operation has failed.
backgroundfetchsuccess(en-US) Experimental-
Fired when all of the requests in a background fetch operation have succeeded.
canmakepayment(en-US) Experimental-
Fired on a payment app's service worker to check whether it is ready to handle a payment. Specifically, it is fired when the merchant website calls
new PaymentRequest()(en-US). contentdelete(en-US) Experimental-
Occurs when an item is removed from the
Content Index(en-US). fetch(en-US)-
Occurs when a
fetch()is called. install(en-US)-
Occurs when a
ServiceWorkerRegistrationacquires a newServiceWorkerRegistration.installingworker. message(en-US)-
Occurs when incoming messages are received. Controlled pages can use the
MessagePort.postMessage()(en-US) method to send messages to service workers. The service worker can optionally send a response back via theMessagePort(en-US) exposed inevent.data.port, corresponding to the controlled page. notificationclick-
Occurs when a user clicks on a displayed notification.
notificationclose(en-US)-
Occurs when a user closes a displayed notification.
paymentrequest(en-US) Experimental-
Fired on a payment app when a payment flow has been initiated on the merchant website via the
PaymentRequest.show()(en-US) method. sync(en-US)-
Triggered when a call to
SyncManager.register(en-US) is made from a service worker client page. The attempt to sync is made either immediately if the network is available or as soon as the network becomes available. periodicsync(en-US) Experimental-
Occurs at periodic intervals, which were specified when registering a
PeriodicSyncManager(en-US). push(en-US)-
Occurs when a server push notification is received.
pushsubscriptionchange(en-US)-
Occurs when a push subscription has been invalidated, or is about to be invalidated (e.g. when a push service sets an expiration time).
Examples
This code snippet is from the service worker prefetch sample (see prefetch example live.) The onfetch (en-US) event handler listens for the fetch event. When fired, the code returns a promise that resolves to the first matching request in the Cache object. If no match is found, the code fetches a response from the network.
The code also handles exceptions thrown from the fetch() operation. Note that an HTTP error response (e.g., 404) will not trigger an exception. It will return a normal response object that has the appropriate error code set.
js
self.addEventListener("fetch", (event) => {
console.log("Handling fetch event for", event.request.url);
event.respondWith(
caches.match(event.request).then((response) => {
if (response) {
console.log("Found response in cache:", response);
return response;
}
console.log("No response found in cache. About to fetch from network…");
return fetch(event.request).then(
(response) => {
console.log("Response from network is:", response);
return response;
},
(error) => {
console.error("Fetching failed:", error);
throw error;
}
);
})
);
});
Specifications
| Specification |
|---|
| Service Workers # serviceworkerglobalscope-interface |
Browser compatibility
BCD tables only load in the browser