https://github.com/adaliszk/sw-periodic-sync
Just a "polyfill" solution for the serviceWorker periodicSync, it does the functionallity of the non-standard specification.
https://github.com/adaliszk/sw-periodic-sync
polyfill serviceworker serviceworker-periodicsync
Last synced: 8 months ago
JSON representation
Just a "polyfill" solution for the serviceWorker periodicSync, it does the functionallity of the non-standard specification.
- Host: GitHub
- URL: https://github.com/adaliszk/sw-periodic-sync
- Owner: adaliszk
- License: mit
- Created: 2016-07-27T17:16:48.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2016-09-27T08:28:09.000Z (over 9 years ago)
- Last Synced: 2025-04-10T02:16:07.375Z (about 1 year ago)
- Topics: polyfill, serviceworker, serviceworker-periodicsync
- Language: JavaScript
- Homepage:
- Size: 14.6 KB
- Stars: 13
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# serviceWorker Periodic Synchronization
Just a "polyfill" solution for the serviceWorker periodicSync. This code adding to the ServiceWorkerRegistration object
prototype the periodicSync method if not available.
This code is not complete yet, I just created and tested as a possible solution but I need to add moarh code for true
"polyfill" solution. I accept pull request if you have time and like this until the platform does it a better way!
### Sample usage when registering serviceWorker
```
navigator.serviceWorker.register('serviceWorker.js').then(swRegistration => {
swRegistration.periodicSync.register({
tag: 'something',
powerState: 'auto',
networkState: 'online',
allowOnBattery: true,
idleRequired: false,
maxDelay: 60000,
minDelay: 5000,
minPeriod: 20000
});
});
```
### Sample usage after registering serviceWorker
```
navigator.serviceWorker.ready.then(swRegistration => {
swRegistration.periodicSync.register({
tag: 'something',
powerState: 'auto',
networkState: 'online',
allowOnBattery: true,
idleRequired: false,
maxDelay: 60000,
minDelay: 5000,
minPeriod: 20000
});
});
```
### Synchronization event
When the periodicSync is fired the script will trigger a global event which is named after the registered periodic sync
in this format: ``sync-``
```
document.addEventListener('sync-something', function(event) {
// do stuff...
});
```
### Unregister a synchronization
```
navigator.serviceWorker.ready.then(swRegistration => {
swRegistration.periodicSync.getRegistration('something').then(registration => {
registration.unregister();
});
});
```
### Change a synchronization
The register will always delete the previnous synchronization settings and use the new one using the tag as a key.
## "Documentation"
* https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncManager
* https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncRegistration
* https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncEvent