前幾天,在程式使用Respoonse.Redirect("a.aspx?f=9#12")的時候,發現在IE裡面,跳轉之後的頁面忽略了#之後的內容,奇怪的是在同一頁向自己Redirect的時候,這個問題就不會存在,百思不得其解,有病亂投醫吧,上網狂搜了一把,有人說設置頁面Buffer為false可能解決這個問題,於是將a頁面的buffer設置了false,經過驗證,這個與上述問題不相干,但是一時疏忽,忘記了沒有將buffer修改過來,昨天項目發布,放到服務器上發祥a頁面的執行時間大的驚人,頁面內容稍微大一點,頁面往往會超時,而實現相同功能的b頁面執行時間基本上為0-16,而a頁面資料庫查詢次數為3,b頁為7,這就更讓人納悶了,在本地試了下,b頁面基本上和伺服器沒什麼差別,a頁面在90-300ms之間,而明顯的b頁面要表現的資料和查詢的次數都要比a多,兩者從頁面結構上來說,基本上一樣,因為二者共同使用了相同的UserControl,只有中間部分錶現形式稍微不同而已,同在一個屋簷下的人,差距怎麼這麼大呢?納悶之餘,一個個刪除頁面元素,發現根本不起本質作用,b頁面就是出奇的快,a頁面跟中風一樣,慢的可以,於是找亞找,基本說是將a改了個遍,就差說鬧鬼了得時候,突然發現a頁面的buffer設定了false,而b赫然是true, 豁然開朗,鐵釘就是這裡問題,馬上更正過來,good!a頁面馬上快了起來。
一次不小心,造成如此的麻煩,不過總結了一下規律,在buffer設定為false得時候,與設定true,頁面在處理時間上基本相差10-20倍的關係,如果以後發現同樣功能的頁面,速度相差不少,排除了資料處理等因素,應考慮是否有上述問題。