Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ASP - Использование переменных и констант

Переменная  — это именованная область памяти компьютера, содержащая данные, например числа или текстовые строки. Данные, содержащиеся в переменной, называются значением переменной. Переменные предлагают способ хранения, извлечения и манипулирования данными с помощью имен, что помогает понять работу сценария.

Объявление и именование переменных

Следуйте правилам и рекомендациям языка написания сценариев по именованию и объявлению переменных. Даже если не требуется объявить переменную перед использованием, явное объявление переменных является хорошей привычкой, поскольку это позволяет предотвращать ошибки. Объявление переменной означает уведомление обработчика сценариев о том, что переменная с определенным именем существует. После этого можно использовать ссылки на переменную в сценарии.

VBScript

VBScript не требует объявления переменных, но считается хорошим стилем написания сценариев объявлять все переменные перед их использованием. Чтобы объявить переменную в VBScript, используйте операторы Dim, Public или Private. Например:

<% Dim UserName %>

Можно использовать оператор VBScript Option Explicit в файле .asp, чтобы требовать явного объявления переменных операторами Dim, Private, Public и ReDim. Оператор Option Explicit должен появиться после любой директивы ASP, но перед текстами HTML и командами сценария. Этот оператор влияет на команды ASP, написанные на VBScript; но не оказывает влияния на команды JScript.

<% Option Explicit %>
<HTML>
<%
  Dim strUserName
  Public lngAccountNumber
%>
.
.
.

Дополнительные сведения об этих командах см. в справочнике по языку VBScript, который может быть найден на веб-узле Microsoft Windows Script Technologies, расположенном по адресу http://msdn.microsoft.com/scripting/.

JScript

Хотя JScript обычно не требует объявления переменных, но считается хорошим стилем написания сценариев объявлять все переменные перед их использованием. Чтобы объявить переменную, используйте оператор var. Например:

<% var UserName %>

Обычно необходимо объявлять переменную в JScript, когда необходимо отличить переменную внутри функции от глобальной переменной, используемой вне функции. В этом случае если не отличать эти две переменные, JScript будет предполагать, что ссылаются исключительно на глобальную переменную. Дополнительные сведения об операторе var см. в справочнике по языку JScript. Эти ссылки могут быть найдены на веб-узле Microsoft Windows Script Technologies, расположенном по адресу http://msdn.microsoft.com/scripting/.

Область определения переменной

Область определения, или время жизни, переменной определяет команды сценария, которые могут обращаться к переменной. Переменная, объявленная внутри процедуры, имеет локальную область определения; переменная создается и уничтожается при каждом выполнении процедуры. Извне процедуры доступ к переменной невозможен. Переменная, объявленная вне процедуры, имеет глобальную область определения; ее значение доступно и может быть изменено любой командой сценария на странице ASP.

Примечание.   Ограничение области определения переменной рамками процедуры повышает быстродействие.

Если переменные объявлены, глобальная и локальная переменные могут иметь одно и то же имя. Изменение значения одной не вызовет изменения значения другой. Если переменные не объявлены, можно непреднамеренно изменить значение глобальной переменной. Например, приведенные ниже команды сценария возвращают значение 1, даже если имеется две переменных с именем Y:

<%
  Option Explicit
  Dim Y

  Y = 1

  SetLocalVariable

  Response.Write Y

Sub SetLocalVariable
    Dim Y
    Y = 2
End Sub
%>

Приведенные ниже команды сценария, напротив, возвращают значение 2, поскольку переменные не объявлены явным образом. Когда вызов процедуры устанавливает Y в значение 2, обработчик сценариев предполагает, что процедура изменяет глобальную переменную.

<%
  Option Explicit
  Dim Y = 1

  SetLocalVariable

  Response.Write Y

Sub SetLocalVariable
    Y = 2
End Sub
%>

Чтобы избежать подобных проблем, выработайте привычку явно объявлять все переменные. Это особенно важно при использовании оператора #include для вставки файлов в файл .asp. Включенный сценарий содержит отдельный файл, но рассматривается как часть включающего файла. Если не объявлять переменные, можно забыть о необходимости использования различных имен переменных в главном сценарии и вставленном сценарии.

Установка в качестве области определения переменной сеанса или приложения

Глобальные переменные доступны только в отдельном файле .asp. Чтобы сделать переменную доступной вне отдельной страницы, в качестве ее области определения должны быть указаны сеанс или приложение. Переменные сеанса доступны для всех страниц приложения ASP, которое запрошено одним пользователем. Переменные приложения доступны для всех страниц приложения ASP, которое запрошено любым пользователем. Переменные сеанса являются удачным способом хранения сведений об отдельных пользователях, например параметры, имя пользователя или идентификационный код. Переменные приложения позволяют хранить сведения обо всех пользователях определенного приложения, например приветствие приложения или общие значения, необходимые приложению.

ASP предлагает два встроенных объекта, которые могут хранить переменные: объект Session и объект Application.

Можно также создать экземпляры объектов, имеющие в качестве области определения сеанс или приложение. Для получения дополнительных сведений см. раздел Задание области определения объектов.

Область определения — сеанс

Чтобы указать сеанс в качестве области определения переменной, сохраните ее в объекте Session, назначив значение поименованной записи в объекте. Ниже приводится пример команды сохранения двух новых переменных в объекте Session.

<%
  Session("FirstName") = "Михаил"
  Session("LastName") = "Петров"
%>

Чтобы извлечь информацию из объекта Session, получите доступ к поименованной записи с помощью директивы вывода (<%=) или Response.Write. Приведенный ниже пример использует директиву вывода для отображения текущего значения Session("FirstName"):

Welcome <%= Session("FirstName") %>

Объект Session позволяет также сохранить сведения о предпочтениях пользователя, на основании которых впоследствии можно будет определить, какую страницу следует ему отправить. Так, если на первой странице приложения пользователем выбирается текстовое представление сведений, та же форма представления может использоваться применительно к остальным страницам приложения, которые он посетит.

<%
  strScreenResolution = Session("ScreenResolution")
  If strScreenResolution = "Low" Then
%>
  Текстовая версия страницы.
<% Else %>
  Мультимедийная версия страницы.
<% End If %>

Примечание.   Если на переменную сеанса в сценарии ссылаются несколько раз, для увеличения быстродействия предусмотрите, как в предыдущем примере, присвоение ее значения локальной переменной.

Область определения — приложение

Чтобы указать приложение в качестве области определения переменной, сохраните ее в объекте Application, назначив значение поименованной записи в объекте. Ниже приводится пример команды приветствия приложения в объекте Application.

<% Application("Greeting") = "Вас приветствует отдел продаж!" %>

Чтобы извлечь информацию из объекта Application, используйте директиву вывода (<%=) или Response.Write для получения доступа к поименованной записи с любой последующей страницы приложения. приведенный ниже пример использует директиву вывода для отображения значения Application("Greeting"):

<%= Application("Greeting") %>

Если сценарий часто использует переменную приложения, для повышения быстродействия следует присвоить ее значение локальной переменной.

Использование констант

Константа  — это имя, которое используется вместо числа или строки. Некоторые основные компоненты, поставляемые с ASP, например ActiveX Data Objects (ADO), определяют константы, которые можно использовать в сценарии. Компонент может объявить константы в библиотеке типов компонента — файле, содержащем сведения об объектах и типах, поддерживаемых компонентом COM. Объявив библиотеку типов в файле .asp, можно использовать константы в любом сценарии в том же файле .asp. Аналогично можно объявить библиотеку типов в файле Global.asa, чтобы использовать константы в любом файле .asp в приложении.

Чтобы объявить библиотеку типов, используйте тег <METADATA> в файле .asp или файле Global.asa. Например, чтобы объявить библиотеку типов ADO, используйте приведенные ниже операторы:

<!--METADATA NAME="Microsoft ActiveX Data Objects 2.5 Library" TYPE="TypeLib" UUID="{00000205-0000-0010-8000-00AA006D2EA4}"-->

Можно также указать не универсальный уникальный идентификатор (UUID) библиотеки типов, а путь к этой библиотеке типов:

<!-- METADATA TYPE="typelib" FILE="c:\program files\common files\system\ado\msado15.dll"-->

Затем можно использовать константы ADO в файле .asp, в котором объявлена библиотека типов, или в файле .asp, относящемся к приложению, содержащему файл Global.asa с объявлением библиотеки типов ADO. В приведенном ниже примере adOpenKeyset и adLockOptimistic являются константами ADO:

<%
  'Создание и открытие объекта Recordset.
  Set rstCustomerList = Server.CreateObject("ADODB.Recordset")

  rstCustomerList.ActiveConnection = cnnPubs
  rstCustomerList.CursorType = adOpenKeyset
  rstCustomerList.LockType = adLockOptimistic
%>

В приведенной ниже таблице перечислены часто используемые библиотеки типов и универсальные уникальные идентификаторы (UUID):

Библиотека типов UUID
Библиотека Microsoft ActiveX Data Objects 2.5{00000205-0000-0010-8000-00AA006D2EA4}
Библиотека Microsoft CDO 1.2 для Windows 2000 Server{0E064ADD-9D99-11D0-ABE5-00AA0064D470}
Библиотека MSWC Advertisement Rotator Object{090ACFA1-1580-11D1-8AC0-00C0F00910F9}
Библиотека объектов журнала MSWC IIS{B758F2F9-A3D6-11D1-8B9C-080009DCC2FA}

Справочные сведения о теге <METADATA> см. в разделе Объявления библиотек типов.

В предыдущих версиях ASP некоторые компоненты обеспечивали определения констант в файлах, которые должны были быть включены в каждый файл ASP, использующий константы. Использование директивы #include для включения определения констант все еще поддерживается, но библиотеки типов проще использовать, а сценарии с их помощью проще обновлять. В будущих выпусках ASP компоненты могут не формировать файлы определения констант.

Примечание.   Использование тега <METADATA>, а не директивы #include может повысить быстродействие веб-приложения.

Можно определить собственный набор констант. В VBScript используйте оператор Const. В JScript можно использовать оператор var для присвоения постоянного значения переменной. Если необходимо использовать константы в нескольких файлах .asp, поместите объявления в отдельный файл и включайте его в каждый файл .asp, использующий эти константы.

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог