Ich möchte regelmäßig eine API von meinem Service Worker aufrufen, um Daten zu senden, die in localStorage gespeichert sind. Diese Daten werden in localStorage erstellt und gespeichert, wenn ein Benutzer meine Website aufruft. Betrachten Sie es als etwas wie das Speichern von Statistiken in localStorage und das regelmäßige Senden durch den Service-Mitarbeiter. Wie soll ich das machen? Ich verstehe, dass ich vom Servicemitarbeiter nicht auf localStorage zugreifen kann und die postMessage-API verwenden muss. Jede Hilfe würde sehr geschätzt werden.Zugriff auf localStorage von Service Worker
2
A
Antwort
5
Sie können nicht auf localStorage (und auch sessionStorage) von einem Webworker-Prozess zugreifen, sie werden undefined
sein, dies ist aus Sicherheitsgründen.
Sie müssen postMessage()
zurück zum Ursprungscode des Arbeiters verwenden und diesen Code die Daten in localStorage speichern lassen.
Verwenden Sie sollten localStorage.setItem()
und localStorage.getItem()
verwenden, um Daten aus dem lokalen Speicher zu speichern und abzurufen.
Mehr Infos:
Pseudo-Code unten, in der Hoffnung Sie beginnen zu bekommen.
// include your worker
var myWorker = new Worker('YourWorker.js'),
data,
changeData = function() {
// save data to local storage
localStorage.setItem('data', (new Date).getTime().toString());
// get data from local storage
data = localStorage.getItem('data');
sendToWorker();
},
sendToWorker = function() {
// send data to your worker
myWorker.postMessage({
data: data
});
};
setInterval(changeData, 1000)
Verwandte Themen
- 1. Zugriff dom von Web Worker
- 2. Service Worker arbeitet auf http
- 3. Zugriff auf localStorage in node.js?
- 4. Zugriff auf localstorage in App.config
- 5. Angular Service für localstorage
- 6. XMLHttpRequest in Service Worker
- 7. Service Worker, Doppel-Caching?
- 8. Understanding Service Worker Bereich
- 9. Service Worker Cache-Größen
- 10. Service Worker und AJAX
- 11. CDN Service Worker
- 12. FCM Service Worker setBackgroundMessageHandler
- 13. dask s3 Zugriff auf ec2 worker
- 14. Verwenden von Service Worker in angularjs
- 15. Service Worker-Datei Offline-Ereignisse
- 16. TensorFlow Master und Worker Service
- 17. Push-Ereignis von Service Worker wird nicht
- 18. gemeinsam genutzter Daten von einem Worker-Thread Zugriff auf
- 19. Zugriff auf Web-Service von GWT
- 20. Zugriff auf ASP.NET Web-Service von Android
- 21. Chrome und Service Worker Push-API
- 22. Web-Service-Zugriff auf Wrapper
- 23. Zugriff auf einen zustandsbehafteten Service
- 24. Wie deinstalliere ich einen Service Worker?
- 25. Android lokale Benachrichtigung mit Angular Service Worker
- 26. Firebase-Dienst wird nicht aktualisiert. Service Worker
- 27. Ionic 2 Service-Funktion warten auf localstorage vor der Rückkehr
- 28. Android Service und Worker-Thread ReentrantLock Endlosschleife
- 29. Habe ich Zugriff auf localStorage in Outlook 2016 Desktop-Client?
- 30. Warum kann SimpleHTTP2Server Service Worker nicht auf localhost laden
'var myWorker = neu YourWorker ('YourWorker.js'),'> 'neuer WebWorker' richtig? – Roberrrt
@Roberrrt danke für deinen Kommentar, richtig ist 'new Worker()' :) – GibboK
Danke GibboK, aber ich habe ein paar Zweifel. Der Code, den du erwähnt hast, würde in einem meiner Javascripts laufen. Und damit der Benutzer läuft, muss die Website laufen? Ist es nicht? Ich suche nach etwas, wo in der Service-Mitarbeiter regelmäßig Daten aus dem lokalen Speicher sendet, auch wenn der Benutzer nicht auf meiner Website ist. Ist mein Szenario überhaupt möglich? – Faiz