Как я могу сделать переменную статической (или «глобальной») в Classic ASP? - PullRequest
4 голосов
/ 26 мая 2009

Я хочу сделать мою переменную статической или "глобальной" - такой же эффект, как статическая в .NET; каждый сеанс, который обращается к нему, получает один и тот же результат, и если один сеанс изменяет его, это влияет и на всех остальных.

Как мне добиться этого в Classic ASP?

Ответы [ 2 ]

6 голосов
/ 26 мая 2009

Если вы хотите иметь переменную, доступную для всего приложения, вы можете использовать объект приложения. Обязательно используйте Application.Lock / Unlock для предотвращения любых проблем.

Application.Lock
Application("MyVariable") = "SomeValue"
Application.Unlock
4 голосов
/ 26 мая 2009

с использованием переменной сеанса

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

сфера будет пользователь ...

если вы хотите расширить область действия на ВСЕХ пользователей, находящихся на веб-сайте, то вы используете переменную Application

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

Вы также можете сбросить или обработать это в файле global.asa

Это обычное дело:

global.asa file:

<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 file:

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