Asp-Classic

如何在經典 ASP 中將變數設為靜態(或“全域”)?

  • October 23, 2009

我想讓我的變數靜態或“全域” - 所以與.NET中的靜態效果相同;每個訪問它的會話都會得到相同的結果,如果一個會話修改它,它也會影響其他所有人。

如何在經典 ASP 中實現這一點?

如果您想要一個可在應用程序範圍內訪問的變數,您可以使用應用程序對象。請務必使用Application.Lock/Unlock以防止出現任何問題。

Application.Lock
Application("MyVariable") = "SomeValue"
Application.Unlock

使用會話變數

Session("myVariableName") = "my new value"

範圍將是使用者…

如果您想將範圍擴大到網站中的所有使用者,那麼您可以使用 Application 變數

Application("myVariableName") = "my new value"

您也可以在 global.asa 文件中重置或處理此問題

這是一種常見的做法:

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文件:

<html>
<head>
</head>
<body>
 <p>There are <%response.write(Application("visitors"))%> online now!</p>
</body>
</html>

引用自:https://stackoverflow.com/questions/909808