頁面不能及時重新整理,問題出在outputcache上

2021-04-13 07:53:17 字數 1035 閱讀 8868

這段時間在做乙個專案時,遇到乙個困擾我和同事好久的問題:在vb.net下實現編寫乙個左邊導航條控制項,用來根據不同的使用者登入資訊顯示不同的內容。可是遇到乙個問題一開始怎麼也沒辦法解決,就是每當切換使用者的時候導航條內容不跟著變化,仔細測試了一下發現表面現象如下:

1、每次切換使用者,按道理根據使用者資訊的不同,控制項中顯示的內容應該是不一樣,可是居然沒有變化,怎麼重新整理頁面都沒變化  

2、點其他之前未檢視過的頁面,導航控制項變化了,然後再回到換使用者前訪問過的頁面,導航控制項又是上乙個使用者使用的內容,重新整理,再重新整理,還是沒變化  

3、頁面不動,過了一陣子再去重新整理,咦!現在才發生變化  

真是鬱悶!!!

根據這些情況,我琢模可能是快取的問題,可是這個這個「快取」到底設定在什麼地方了呢?結果經過仔細的查詢,最終發現原來是在該控制項的html**頂部裡有這麼一句話在作怪:

<%@ outputcache duration="120" varybyparam="none" %>

於是試著去掉,果然問題馬上得到了解決,到網上搜了一下,這句話的意思是:用來啟動outputcache

所謂output cache,是在執行msil之後,先將結果寫入output cache,然後再將output cache下傳到瀏覽器,而將來如果瀏覽同一網頁,asp+會先判斷該網頁是否有output cache存在,如果有,則直接將output cache下傳瀏覽器,不會經過編譯.aspx及執行msil的過程,故能提公升執行效能。

啟動outputcache的方法十分簡單,只要在.aspx網頁的最前面加上以下標記:

<%@output cache duration="秒數"%>

其中durtion表示output cache保留在系統中的秒數,例如:

<%@output cache duration="10"%>

結果網頁的output cache將會保留系統中10秒鐘,而凡是在這10秒鐘內瀏覽此一網頁,asp+就會直接將output cache下傳給瀏覽器,省略了編譯的過程!

原來如此!!!哈哈,又學到了新東西,以後不會再範這個錯誤咯,高興 

父頁面重新整理問題

window.opener.location.reload 與 window.opener.location.href window.opener.location.href 都是彈出視窗關閉時用來重新整理父窗 口。但window.location.reload 如果有資料提交的動作,會提示是否提交...

ajax頁面重新整理問題的解決思路

ajax頁面重新整理問題的解決思路 在ajax應用中經常遇到的問題是重新整理問題 使用者在區域性更新了頁面以後,又重新整理了整個頁面,頁面又回到初始化狀態了,而這一般並不是使用者想要的結果 乙個令人頭疼的問題.其實他的解決思路和原理很簡單 頁面重新整理問題可以轉化為兩個問題 1。在使用者區域性更新頁...

cas 退出到登入頁面重新整理問題

版本 cas 4.0.0 登入成功後,馬上點退出。退出登入後,自動跳轉到login頁面,慢一點,等個幾秒鐘,然後輸入使用者名稱,密碼,提交 頁面重新整理了一下,仍然是login頁面,再次輸入,正常進入。發現,訪問login頁面時是session start,登入成功後是session end,也就是...