7

変数を静的または「グローバル」にしたいので、.NETの静的と同じ効果があります。アクセスするすべてのセッションで同じ結果が得られ、1つのセッションで変更すると、他のすべてのセッションにも影響します。

クラシックASPでこれを実現するにはどうすればよいですか?

4

2 に答える 2

7

セッション変数を使用する

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

スコープはユーザーになります...

Webサイトにいるすべてのユーザーに範囲を広げたい場合は、アプリケーション変数を使用します

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>

default.aspファイル:

<html>
 <head>
 </head>
 <body>
  <p>There are <%response.write(Application("visitors"))%> online now!</p>
 </body>
</html>
于 2009-05-26T09:33:15.730 に答える
7

アプリケーション全体でアクセス可能な変数が必要な場合は、アプリケーションオブジェクトを使用できます。問題を防ぐために、必ずApplication.Lock/Unlockを使用してください。

Application.Lock
Application("MyVariable") = "SomeValue"
Application.Unlock
于 2009-05-26T09:35:07.847 に答える