Response 物件掌控伺服器向瀏覽器輸出的所有行為,從緩衝控制、快取策略、逾期管理到連線狀態偵測,是調整頁面效能與安全性的關鍵介面。
Response.Buffer = True | False
True(預設):啟用緩衡,所有伺服器腳本執行完畢、或呼叫 Flush/End 後,才一次性將完整頁面送往瀏覽器。可減少網路往返、避免半頁顯示閃爍。False:即時串流輸出,腳本邊執行邊傳送,適合超長報表、即時進度條。規則:Buffer 設定必須置於 <% @ Language %> 指令之後的第一行,且在任何 HTML/腳本輸出之前,否則拋出錯誤。
Response.Expires = number
0:立即逾期,強制每次重新載入。登入後頁面必須設為 0,防止瀏覽器「返回」鍵顯示已登出內容。<%@ Language="VBScript" %>
<% Response.Buffer = True %>
<% Response.Expires = 1 %> ' 快取 1 分鐘
<html><body><center>
<font face="華文彩雲" size="7" color="red"><b>現在是:<%= Time() %></b></font>
</center></body></html>
對比 Expires=0:每次重新整理(網址列 Enter,非 F5)時間皆更新。
Response.ExpiresAbsolute = [date] [time]
"November 21, 2005 20:18:15"。True 表示瀏覽器在上一次 Response.Write 後仍保持連線;False 表示使用者已關閉視窗、按下停止或網路中斷。Response.End 釋放伺服器資源。Response.Write 執行後有效;若腳本長時間運算且無輸出,屬性不會自動更新。| 情境 | 建議設定 | 說明 |
|---|---|---|
| 一般動態頁面 | Buffer=True, Expires=0 | 確保即時資料、避免快取舊內容 |
| 靜態內容/報表 | Buffer=True, Expires=1440 (一天) | 降低伺服器負載、加速二次造訪 |
| 登入/權限頁面 | Buffer=True, Expires=0, ExpiresAbsolute=Now() | 雙重保險防止快取洩漏敏感資訊 |
| 大量資料匯出 | Buffer=False, 配合 Flush | 串流輸出避免記憶體暴增、使用者見進度 |
| 長時間批次處理 | 定期檢查 IsClientConnected | 用戶離開時提早終止、節省 CPU/資料庫連線 |
善用 Response 屬性,不僅能優化效能,更是資安與使用者體驗的第一道防線。