瀏覽器經常Cache你的頁面,這是一個很麻煩的問題,下面先提出 六種方案來解決一般的問題:(把下面的代碼加入到asp程序的最開始位置) <% response.expires = 0 response.expiresabsolute = Now() - 1 response.addHeader "pragma","no-cache" response.addHeader "cache-control","private" Response.CacheControl = "no-cache"(或則設置為Private) %> 請注意分析上面的方法: 前4種方法可以一般的終結瀏覽器緩存頁面。但是它們對IE5是無能為力的, 對于IE5只能夠使用第5種方法。上面的方法都是針對IE瀏覽器的,它們告訴 IE瀏覽器關閉緩存頁面功能。 但是十分不幸的是,即使如此,NetScape瀏覽器還是將緩存頁面。 要最終不讓瀏覽器緩存頁面,在編程的時候就會付出很多。其實緩存頁面 對于純粹的HTML頁面來說是很有用的,它可以減輕服務器的壓力。但是它對于 動態的asp來說簡直就是災難,特別是如果你是開發一個電子商務程序時,例如 一個購物車程序,你會發現你訂購的東西突然會莫名其妙的消失了,或者本來已經 被刪除掉的貨物怎么會突然出現在購物車內呀,所以,往往你會付出很大的代價 來解決緩存頁面這個大麻煩: 1。盡量小心使用Response.redirect,不要到處亂用,呵呵。 2?梢允褂孟旅娴膬蓚函數替代redirect.用一個帶?號的url傳遞給函數 Redirect,這樣每次生成的連接到下一頁的url將不同,不同的url將會讓所有的 瀏覽器終止緩存同一個頁面的,呵呵,是個比較有意思的方法。這也是我推薦的 第六種方法。 Function Redirect( NewURL ) If Not IsEmpty( NewURL & "" ) Then Dim QuestionMark QuestionMark = Instr( NewURL, "?" ) If QuestionMark = 0 Then Response.Redirect NewURL & "?" & NoCacheURL() Response.End Else Response.Redirect NEWURL & "&" & NoCacheURL() Response.End End If End If
Function NoCacheURL() On Error Resume Next Randomize ' 一般是兩種生成隨機連接的方法,如果你使用Now()的話,就不用使用Randomize了 NoCacheURL = "NoCache=" & Server.URLEncode(rnd) ' 或則NoCacheURL = "NoCache=" & Server.URLEncode(Now()) End Function (出處:熱點網絡)
|