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
Clients
object associated with the service worker. ServiceWorkerGlobalScope.registration
(en-US) 읽기 전용-
Contains the
ServiceWorkerRegistration
object 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
console
associated 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.WorkerLocation
is a specific location object, mostly a subset of theLocation
for browsing scopes, but adapted to workers. -
Returns the
WorkerNavigator
(en-US) associated with the worker.WorkerNavigator
is a specific navigator object, mostly a subset of theNavigator
for 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
ServiceWorkerGlobalScope
object 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
ServiceWorkerRegistration
acquires a newServiceWorkerRegistration.active
worker. 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
ServiceWorkerRegistration
acquires a newServiceWorkerRegistration.installing
worker. 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