快捷搜索:

网页过期的问题再转一遍,建议斑竹加入精华区

防止应用者按上一頁按鈕

討論區上常有網友問到這個問題, 若何防止应用者按回上一頁按鈕, 為何會問這一個問題? 應該平日是在防止应用者重複執行一個應用程式, 例如資料庫的新增, 假如应用者按了回上一頁, 有可能會造成重複新增資料, 本日這篇文章就要介紹若何 "盡可能" 的防止应用者按回上一頁

伺服端防止快取

首先來看看伺服真个措施, ASP 的 Response 物件供给了幾個網頁快取 (cache) 相關的屬性, 說明如下

屬性 說明

CacheControl 判斷代理伺服器 (Proxy Server) 是否快取 ASP 的輸出結果

Expires 網頁快取的过期時間

ExpiresAbsolute 指定網頁快取的过期時間

以是假如你要防止網頁被快取, 你可以這麼做

使用這個措施, 应用者還是可以回到上一頁, 但由於網頁並沒有被快取, 以是瀏覽器必須从新向伺服器作 Http 請求, 也便是這個網頁會被从新收拾 (Refresh)

用戶端防止快取

你也可以应用用戶端 (Client-side) 的要领,

和伺服真个措施產生的結果是一樣的, 但有幾點要留意

Pragma : 當应用安然連結時才应用 Pragma, 假如在非安然連結应用, 那麼效果和 Expires : -1 是相同的, 也便是這個網頁還是會被快取, 但會急速逾時

meta http-equiv 標籤的 cache-control 並不適用於 Internet Explorer 4, 5 版本

移除对象列

這個措施是在網路上看來的, 有點意见意义以是也介紹一下, 做法是這樣的, 使用 window.open 措施來開新視窗, 然後關掉落原視窗, 但重點是在開視窗時將对象列移除

下一頁

也是一種措施, 但應該很少人會用, 有一點麻煩! 況且按滑鼠右鍵所出現的 Menu 中也有回上一頁的選項, 此法謹防正人不防小人!

应用 location.replace

Javascript location 物件的 replace() 措施會以指定的網址覆蓋瀏覽器今朝瀏覽歷史紀錄, 也便是當你用了這個措施, 瀏覽器就會忘掉落過去曾經瀏覽的紀錄, 就親像你第一次開啟瀏覽器一樣, 上一頁的按鈕是灰的

你可以這麼做

下一頁

看起來這大年夜概是今朝最好的措施! 不過還是有一些缺點, 因為並不是所有的情況都可以套用, 譬如講當你应用 Response.Redirect 時, 這個措施就派不上用場了!

可以歸納出一個結論, 便是要完全關閉瀏覽器回上一頁的功能是弗成能的 (今朝的瀏覽器), 独一能做的是因時随机应变, 結合以上的措施盡可能的防止应用者按回上一頁!

盼望這篇文章對你有幫助!

您可能还会对下面的文章感兴趣: