2019/3/1 18:38:13
提交後禁用(yòng)提交按鈕
如(rú)果提交後,按F5刷新怎麽辦?
使用(yòng)Session
在提交的(de)頁面也(yě)就是數據庫處理(lǐ)之前:
if session("ok")=true then
response.write "錯誤,正在提交"
response.end
end if
數據處理(lǐ)完後,修改session("ok")=false。
數據處理(lǐ)成功馬上(shàng)Redirect到(dào)另外一個(gè)頁面
操作後刷新的(de)确是個(gè)問題,可(kě)以使用(yòng)跳轉頁面、關閉本頁面,如(rú)果是有(yǒu)參數數據條件(jiàn)來控制(zhì)的(de),那就應該好做了,可(kě)以直接修改window.location的(de)值,把參數全部改掉,這樣就差不多了。
缺點:簡單地(dì)運用(yòng)Response.Redirect将不再有(yǒu)效,因爲從一個(gè)頁面轉到(dào)另一個(gè)頁面,都(dōu)必須用(yòng)客戶端代碼清除location.history。注意,這種方法清除的(de)是最後一個(gè)訪問曆史記錄,而不是全部的(de)訪問記錄。 點擊後退按鈕,再點擊後退按鈕,可(kě)以看到(dào)這時打開(kāi)的(de)是本頁面之前的(de)頁面!(當然,這是在客戶端啓用(yòng)了JavaScript功能(néng)的(de)條件(jiàn)下。)
如(rú)果按後退,怎麽辦?
防止網頁後退--禁止緩存
在進行(xíng)數據庫添加操作的(de)時候,如(rú)果允許後退,而正巧有(yǒu)刷新了頁面,就會(huì)再次執行(xíng)添加操作,無疑這不是需要的(de),像一般網上(shàng)很多禁止緩存的(de)代碼,有(yǒu)時并不可(kě)靠,這時隻要在操作的(de)頁面加上(shàng)就可(kě)以了,在網頁的(de)裏指定要定向的(de)新頁,再點後退,看是不是不會(huì)再退到(dào)剛才的(de)操作頁面了,實際上(shàng)已經把這個(gè)曆史給删除了
ASP:
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
ASP.NET:
Response.Buffer=true;
Response.ExpiresAbsolute=DateTime.Now.AddSeconds(-1);
Response.Expires=0;
Response.CacheControl="no-cache";
究竟怎樣才能(néng)"禁用(yòng)"浏覽器(qì)的(de)後退按鈕?或者“怎樣才能(néng)防止用(yòng)戶點擊後退按鈕返回以前浏覽過的(de)頁面?”
遺憾的(de)是,無法禁用(yòng)浏覽器(qì)的(de)後退按鈕。
防止網頁後退--新開(kāi)窗口
用(yòng)window.open彈出表單頁面,點提交後關閉該頁;處理(lǐ)提交的(de)ASP頁也(yě)是用(yòng)彈出,設定表單的(de)target,點提交時window.open("pagelist.html","_blank"),然後用(yòng)JS來提交表單,完成後window.close();
簡單的(de)說,就是提交表單的(de)時候彈出新窗口,關閉本窗口。
深圳市南山區南山街(jiē)道南海(hǎi)大(dà)道西(xī)桂廟路(lù)北陽光(guāng)華藝大(dà)廈1棟4F、4G-04
咨詢電話(huà):136 8237 6272
大(dà)客戶咨詢:139 0290 5075
業(yè)務QQ:195006118
技術(shù)QQ:179981967