Mencegah Penyerahan Semula Borang pada Muat Semula Halaman dengan Post/Redirect/Get
Dalam situasi ini, apabila menyegarkan halaman membawa kepada penyerahan semula borang yang tidak diingini, corak Post/Redirect/Get (PRG) menawarkan penyelesaian yang berkesan. Mari kita mendalami pelaksanaannya.
Selepas borang diserahkan, pelayan melaksanakan langkah berikut:
Dengan mengubah hala pengguna selepas penyerahan borang, GET tersirat penyemak imbas permintaan pada muat semula halaman tidak mengandungi sebarang data borang, menghalang penyerahan semula.
Walau bagaimanapun, ia penting untuk mengelak daripada menggunakan butang Kembali kerana ia boleh mengisi semula borang dengan data yang telah diserahkan sebelum ini. Untuk pengalaman pengguna yang lancar, pastikan halaman baharu memberikan petunjuk jelas bahawa data telah berjaya diserahkan.
Pendekatan Javascript menggunakan window.history.replaceState
Sebagaimana disebutkan dalam jawapan, pendekatan alternatif melibatkan penggunaan window.history.replaceState JavaScript kaedah:
if (window.history.replaceState) { window.history.replaceState(null, null, window.location.href); }
Skrip ini mengubah sejarah penyemak imbas, menggantikan entri semasa dengan yang baharu tanpa mencetuskan muat semula halaman. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa pendekatan ini mungkin tidak boleh dipercayai seperti corak PRG.
Akhirnya, corak PRG kekal sebagai penyelesaian yang mantap untuk menghalang penyerahan semula borang pada muat semula halaman, sambil mengekalkan URL asal borang dan menyediakan pengalaman yang mesra pengguna.
Atas ialah kandungan terperinci Bagaimanakah Post/Redirect/Get (PRG) Boleh Menghalang Penyerahan Semula Borang yang Tidak Diingini pada Muat Semula Halaman?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!