Setelah menghapus /serviceworker.js
dari direktori root saya, Chrome masih menjalankan pekerja layanan yang saya hapus dari webroot saya. Bagaimana cara menghapus instalasi pekerja layanan dari situs web saya dan Chrome sehingga saya dapat masuk kembali ke situs web saya?
Saya telah melacak masalahnya hingga ke mekanisme cache Service Work dan saya hanya ingin menghapus untuk sekarang sampai saya punya waktu untuk men-debug itu. Skrip login yang saya gunakan mengalihkan ke server Google agar mereka masuk ke akun Google mereka. Tapi yang saya dapatkan dari halaman login.php hanyalah sebuah ERR_FAILED
pesan.
html
google-chrome
service-worker
Mark Tomlin
sumber
sumber
Jawaban:
Menghapus Pekerja Layanan Secara Programatis
Anda dapat menghapus pekerja layanan secara terprogram seperti ini:
Documents: getRegistrations , batalkan pendaftaran
Menghapus Pekerja Layanan Melalui Antarmuka Pengguna
Anda juga dapat menghapus pekerja layanan di bawah tab Aplikasi di Chrome Devtools.
sumber
Anda juga dapat membuka URL: chrome: // serviceworker-internal / dan membatalkan pendaftaran serviceworker dari sana.
sumber
document.querySelectorAll(".unregister").forEach(item=>item.click())
Anda dapat melakukan ini melalui Alat Pengembang Chrome dan juga secara terprogram .
Temukan semua instance yang berjalan atau pekerja layanan dengan mengetik
di tab baru dan kemudian pilih pekerja layanan yang ingin Anda batalkan pendaftaran.
Buka Alat Pengembang (F12) dan Pilih Aplikasi. Kemudian
atau
Secara terprogram
sumber
Di Google Chrome, Anda dapat pergi ke Alat pengembang (F12) -> Aplikasi -> Pekerja layanan dan membatalkan pendaftaran pekerja layanan dari daftar untuk domain tertentu.
Metode ini efektif dalam mode pengembangan situs dan sebagian besar berjalan di
localhost
mana Anda mungkin perlu untuk pengembangan proyek lain.sumber
Anda harus mendeteksi dua API di perangkat Anda: getRegistrations dan getRegistration . Pekerja layanan tidak memiliki serangkaian API unik di semua platform. Misalnya, beberapa browser hanya memiliki
navigator.serviceWorker.getRegistration
, nonavigator.serviceWorker.getRegistrations
. Jadi Anda harus mempertimbangkan keduanya.sumber
FYI, jika Anda menggunakan browser MacOS Safari , ada satu cara untuk secara paksa membatalkan registrasi pekerja layanan (langkah dan gambar untuk Safari 12.1):
Safari> Preferensi ...> Privasi> Kelola Data Situs Web ...
Masukkan nama domain (mis. 'Localhost'), klik "Hapus"
Catatan: Selain pekerja layanan, ini juga akan menghapus semua cache, cookie, dan database untuk domain ini.
sumber
Selain jawaban yang sudah benar diberikan, jika Anda ingin juga menghapus cache SW Anda dapat memanggil metode berikut:
Lebih banyak dalam artikel ini (Paragraf: "Batalkan pendaftaran seorang pekerja layanan")
Kemungkinan lain, melalui Browser, adalah dengan mengakses bagian "Penyimpanan Tembolok" dan klik tombol "Bersihkan Data Situs":
sumber
uninstall Pekerja Layanan dengan aman
sumber
untuk mendeteksi pekerja layanan:
Kode untuk penghapusan pekerja layanan:
sumber