主頁(yè) > 知識(shí)庫(kù) > 十分鐘內(nèi)學(xué)會(huì) 避免用戶刷新導(dǎo)致重復(fù)POST提交

十分鐘內(nèi)學(xué)會(huì) 避免用戶刷新導(dǎo)致重復(fù)POST提交

熱門標(biāo)簽:檢查注冊(cè)表項(xiàng) 銀行業(yè)務(wù) 服務(wù)器配置 美圖手機(jī) 智能手機(jī) 呼叫中心市場(chǎng)需求 網(wǎng)站文章發(fā)布 鐵路電話系統(tǒng)
Question
在Web應(yīng)用中,采用POST提交信息是非常常見的,然而如果目標(biāo)頁(yè)面打開得太慢,用戶就可能會(huì)刷新頁(yè)面,這時(shí)候之前已經(jīng)提交過(guò)的信息就會(huì)被重復(fù)提交。即使用戶成功打開了POST提交目標(biāo)頁(yè),之后他通過(guò)鏈接導(dǎo)航到別處了,再退回到POST提交目標(biāo)頁(yè)時(shí)仍可能會(huì)重復(fù)提交頁(yè)面(例如因?yàn)闉g覽器緩存已失效)。而且,只要碰到重復(fù)POST提交的場(chǎng)景,瀏覽器就會(huì)問(wèn)用戶是否確認(rèn)重做此操作,用戶并不一定能正確理解重做意味著重做什么,瀏覽器又不允許網(wǎng)站向用戶解釋清楚,所以這屬于非常不友善的設(shè)計(jì)。那么我們應(yīng)該如何避免用戶刷新帶來(lái)的重復(fù)提交呢?

Answer
有一種最簡(jiǎn)單的模式能夠解決這個(gè)問(wèn)題,叫做PRG,也就是Post-Redirect-Get。在用戶提交信息后,我們不要在POST提交的目標(biāo)URL返回結(jié)果頁(yè)面,而返回一個(gè)302將瀏覽器重定向到真正的結(jié)果顯示頁(yè),然后瀏覽器通過(guò)GET去獲取那個(gè)頁(yè)面。

這樣做的話,用戶刷新結(jié)果頁(yè),或者通過(guò)歷史記錄回到該頁(yè)面,都不會(huì)導(dǎo)致瀏覽器要重新進(jìn)行POST,自然也就不會(huì)出現(xiàn)煩人的是否重做對(duì)話框了。而對(duì)于你來(lái)說(shuō),也有效避免了用戶重復(fù)提交信息的可能性。
您可能感興趣的文章:
  • android中ListView多次刷新重復(fù)執(zhí)行g(shù)etView的解決方法
  • javascript下阻止表單重復(fù)提交、防刷新、防后退
  • Asp.Net防止刷新重復(fù)提交數(shù)據(jù)的辦法
  • asp.net 處理F5刷新頁(yè)面重復(fù)提交頁(yè)面的一個(gè)思路
  • firefox下jquery iframe刷新頁(yè)面提示會(huì)導(dǎo)致重復(fù)之前動(dòng)作
  • JSP刷新頁(yè)面表單重復(fù)提交問(wèn)題解決辦法分享
  • 關(guān)于頁(yè)面刷新,事件重復(fù)提交的方法分享
  • php環(huán)境下利用session防止頁(yè)面重復(fù)刷新的具體實(shí)現(xiàn)
  • asp.net防止刷新時(shí)重復(fù)提交(可禁用工具條刷新按鈕)
  • javaweb用戶注銷后點(diǎn)擊瀏覽器返回刷新頁(yè)面重復(fù)登錄問(wèn)題的解決方法

標(biāo)簽:河南 長(zhǎng)治 紅河 樂(lè)山 新疆 沈陽(yáng) 上海 滄州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《十分鐘內(nèi)學(xué)會(huì) 避免用戶刷新導(dǎo)致重復(fù)POST提交》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266