透過Post/Redirect/Get 防止頁面刷新時重新提交表單
在這種情況下,刷新頁面會導致意外的表單重新提交, Post/Redirect/Get (PRG) 模式提供了一個有效的解決方案。讓我們來深入研究一下它的實現。
表單提交後,伺服器執行以下步驟:
透過在表單提交後重定向用戶,瀏覽器的隱式 GET頁面刷新請求不包含任何表單數據,從而防止重新提交。
但是,避免使用後退按鈕,因為它可以使用先前提交的資料重新填充表單。為了獲得無縫的使用者體驗,請確保新頁面清楚地表明資料已成功提交。
使用 window.history.replaceState 的 Javascript 方法
As答案中提到,另一種方法涉及利用 JavaScript 的 window.history.replaceState方法:
if (window.history.replaceState) { window.history.replaceState(null, null, window.location.href); }
此腳本會改變瀏覽器的歷史記錄,以新條目取代目前項目,而不觸發頁面重新整理。但是,需要注意的是,這種方法可能不如 PRG 模式可靠。
最終,PRG 模式仍然是防止頁面刷新時表單重新提交的強大解決方案,同時維護表單的原始 URL 並提供用戶友好的體驗。
以上是發布/重定向/獲取 (PRG) 如何防止頁面刷新時不必要的表單重新提交?的詳細內容。更多資訊請關注PHP中文網其他相關文章!