2016-02-08 15 views
5

Próbowałem buforować żądanie POST w usłudze serwisowej podczas zdarzenia pobierania.Czy pracownicy usług mogą buforować żądania POST?

Użyłem cache.put(event.request, response), ale zwrócona obietnica została odrzucona z TypeError: Invalid request method POST..

Kiedy próbowałem uderzyć w to samo API POST, caches.match(event.request) dało mi niezdefiniowane.

Ale kiedy zrobiłem to samo dla metod GET, zadziałało: caches.match(event.request) dla żądania GET dałem mi odpowiedź.

Czy pracownicy usługi mogą wysyłać żądania POST do pamięci podręcznej? Jeśli nie mogą, to w jaki sposób możemy uczynić aplikacje naprawdę offline?

+0

Powinno być bardzo łatwo po prostu spróbować :) – Marco

Odpowiedz

13

Nie można buforować żądań POST za pomocą interfejsu API pamięci podręcznej. Zobacz https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#cache-put-method (punkt 2.2).

Jest powiązany dyskusja w repozytorium specyfikacji: https://github.com/slightlyoff/ServiceWorker/issues/693

Ciekawym rozwiązaniem jest jeden prezentowane w ServiceWorker Cookbook: https://serviceworke.rs/request-deferrer.html Zasadniczo rozwiązanie serializes żądania IndexedDB.