Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah Halaman Web Dapat Menghalang Kehilangan Data yang Tidak Disimpan Apabila Pengguna Navigasi Jauh?

Bagaimanakah Halaman Web Dapat Menghalang Kehilangan Data yang Tidak Disimpan Apabila Pengguna Navigasi Jauh?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-19 01:24:02718semak imbas

How Can Web Pages Prevent Unsaved Data Loss When Users Navigate Away?

Beri Amaran kepada Pengguna Sebelum Meninggalkan Halaman Web dengan Perubahan Tidak Disimpan

Masalah:

Untuk memastikan integriti data, bagaimana halaman web boleh menghalang pengguna daripada mengemudi pergi atau menutup tab penyemak imbas tanpa mengesahkan bahawa mereka mahu meninggalkan borang yang tidak disimpan data?

Jawapan:

Untuk mencapai kefungsian ini, manfaatkan teknik berikut:

Pendekatan Ringkas tetapi Salah:

Laksanakan pendengar acara untuk acara "beforeunload" dan kembalikan rentetan bukan nol kepada memaparkan gesaan. Walau bagaimanapun, kaedah ini gagal membezakan antara penyerahan borang dan navigasi sebenar, yang membawa kepada gesaan yang tidak perlu.

Pendekatan Panjang tetapi Betul:

Untuk menangani kelemahan pendekatan di atas :

  1. Gunakan "bendera kotor" sempena acara "beforeunload". Bendera "kotor" akan menjejaki perubahan pada borang dan hanya mencetuskan gesaan apabila perlu.
  2. Untuk mengesan perubahan borang dengan berkesan, pertimbangkan untuk menggunakan perpustakaan pihak ketiga seperti jquery.dirty atau jQuery's Are You Sure? pemalam. Pustaka ini menyediakan kaedah yang boleh dipercayai untuk memantau perubahan borang dan memaparkan gesaan.

Kaveat:

Berhati-hati bahawa penyemak imbas moden (mis., Firefox dan Chrome) tidak lagi menyokong mesej tersuai dalam dialog pengesahan navigasi. Ini bermakna pengguna akan melihat mesej generik seperti "Perubahan yang anda buat mungkin tidak disimpan."

Atas ialah kandungan terperinci Bagaimanakah Halaman Web Dapat Menghalang Kehilangan Data yang Tidak Disimpan Apabila Pengguna Navigasi Jauh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn