Pekerja Perkhidmatan Gigih dalam Sambungan Chrome: Panduan
Dalam Chrome, ketekunan pekerja perkhidmatan (SW) tidak disokong secara semula jadi. Mengikut reka bentuk, SW direka bentuk untuk dipunggah selepas lima minit tidak aktif, menjadikannya mencabar untuk mengekalkan perkhidmatan berjalan berterusan. Dalam artikel ini, kami akan meneroka pelbagai penyelesaian untuk memastikan SW anda berjalan dan responsif kepada acara.
Masalah dan Had Diketahui
-
Tidak aktif dan Pemasa Punggah: SW mempunyai pemasa tidak aktif 30 saat dan pemunggahan lima minit pemasa.
-
Isu Pelaksanaan Acara: Chrome mungkin tidak konsisten membangunkan SW untuk semua acara webRequest, terutamanya dalam versi yang lebih lama.
-
Pengendalian Acara yang kerap: Mengendalikan acara yang kerap seperti webRequest dan webNavigation boleh menyebabkan SW dimulakan semula secara berlebihan, menjejaskan prestasi negatif.
-
Panggilan API Berturut-turut: Memanggil API Chrome tertentu secara berturut-turut boleh membantu memanjangkan hayat SW, tetapi pendekatan ini dianggap sebagai eksploitasi pepijat.
Penyelesaian:
Pepijat Eksploit (Chrome 110 ):
- Menetapkan panggilan chrome.runtime.getPlatformInfo() yang dibalut kepada pembolehubah dan memanggilnya berulang kali memastikan SW berjalan lebih lama.
API Luar Skrin (Chrome 109 ):
- Buat dokumen luar skrin yang menghantar mesej ke SW setiap 30 saat. Kaedah ini pada masa ini menyediakan seumur hidup tanpa had tetapi boleh disemak pada masa hadapan.
NativeMessaging API (Chrome 105 ):
- Menyambungkan SW ke hos nativeMessaging memastikan ia berjalan, walaupun hos ranap atau ditutup.
WebSocket API (Chrome 116 ):
- Mewujudkan sambungan WebSocket dan bertukar mesej setiap 25 saat untuk mengelakkan ketidakaktifan.
Pemesejan Chrome API:
- Hantar mesej daripada tab khusus ke SW setiap 30 saat. Ini memerlukan kebenaran hos yang luas tetapi mengelakkan keperluan untuk apl atau API asli.
Tab Khusus:
- Buka tab penyemak imbas dengan halaman sambungan yang berkomunikasi dengan SW. Pendekatan ini meniru halaman latar belakang yang berterusan tetapi menggunakan lebih banyak memori dan mengalih perhatian pengguna.
Awas:
-
Penggunaan Sumber Berlebihan: Gunakan mekanisme keep-alive hanya apabila perlu dan lumpuhkannya sebaik sahaja tugasan selesai.
-
Pengurusan Negeri: Laksanakan strategi untuk menyimpan dan memulihkan keadaan SW sekiranya berlaku yang tidak dijangka ranap.
-
Anggapan Berterusan: Elakkan SW yang berterusan untuk tujuan semata-mata untuk memudahkan pengurusan negeri. Gunakannya terutamanya untuk meningkatkan prestasi dalam kes di mana keadaan pembinaan semula mahal atau sebagai tindak balas kepada acara yang kerap berlaku.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memastikan Pekerja Perkhidmatan Sambungan Chrome Saya Kekal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!