首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> ASP 程式設計 >> ASP 基礎

ASP Application 物件:應用程式層級共享資料

     編輯:ASP 基礎

ASP Application 物件:全域共享資料與狀態管理


Application 物件提供應用程式層級的共享資料儲存,所有使用者共用同一個 Application 物件,適合存放資料庫連線字串、全域計數器、快取資料等。


Application vs Session 差異

特性ApplicationSession
範圍整個應用程式 (所有使用者)單一使用者
生命週期應用程式啟動至結束使用者 Session 期間
典型用途連線字串、全域設定、線上人數購物車、登入狀態、個人化設定

集合

集合描述
Contents腳本指派的所有項目
StaticObjects<object> 標籤宣告的物件

方法

方法描述
Contents.Remove(key)移除指定項目
Contents.RemoveAll()清空所有項目
Lock()鎖定 Application,防止其他使用者同時修改 (防止競態條件)
Unlock()解除鎖定

事件 (Global.asa)

事件觸發時機
Application_OnStart第一個 Session 建立前 (應用程式首次被引用)
Application_OnEnd所有 Session 結束、應用程式關閉時

線上人數計數器完整範例 (Global.asa)

<script language="vbscript" runat="server">
Sub Application_OnStart
  Application("visitors") = 0
End Sub

Sub Session_OnStart
  Application.Lock
  Application("visitors") = Application("visitors") + 1
  Application.UnLock
End Sub

Sub Session_OnEnd
  Application.Lock
  Application("visitors") = Application("visitors") - 1
  Application.UnLock
End Sub
</script>

顯示線上人數 (任意 ASP 頁面)

<p>目前線上人數: <%= Application("visitors") %> </p>

現代架構建議:分散式系統請改用 Redis、Memcached 或資料庫計數器,避免單點故障與記憶體限制。ASP.NET Core 內建 IDistributedCache 介面支援多種快取後端。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved