Zrobiłem plik SW.JS, który buforuje moją stronę czatu, dzięki czemu użytkownicy mogą otworzyć w trybie offline, jednak plik pracownika usług spowodował wiele problemów, w tym nie będąc w stanie zobaczyć nowych wiadomości i rozbijania witryn, więc byłem zmuszony do usunięcia go . Niestety mój z moich obecnych użytkowników nie może ręcznie usunąć pamięć podręczną! Należy pamiętać, że trzymałem plik SW.JS, ale jest teraz pusty, więc jest jakiś kod, który mogę pisać, aby usunąć wszystkie moje obecne bufory użytkowników?

Nie sądzę, że jest to istotne, ale moja aplikacja używa Django

1
ciroj63011 26 październik 2020, 07:03

1 odpowiedź

Najlepsza odpowiedź

Aby usunąć pamięć podręczną, można użyć wbudowanego API pamięci podręcznej.

caches.keys().then(cacheNames => {
    cacheNames.forEach(value => {
        caches.delete(value);
    });
})

Usuwanie zawartości z pliku SW.JS nie wystarczy. Jeśli jest już zainstalowany i działa pracownik serwisowy, sugerowałbym, że chcesz "wyrejestrować", że również. Możesz to zrobić programowo za pomocą poniżej kodu.

navigator.serviceWorker.getRegistrations().then(function(registrations) {
    for(let registration of registrations) {
        registration.unregister()
    } 
})

Uwaga: należy uruchomić ten kod tylko raz we wszystkich przeglądarce użytkownika.

2
Vimal Patel 26 październik 2020, 04:31