Файл Global.asa ASP
- Предыдущая страница ASP #include
- Следующая страница ASP почта
Файл Global.asa является необязательным и может содержать объекты, переменные и методы, доступные для каждого из страниц ASP приложения. Все合法ные скрипты браузера могут быть использованы в Global.asa.
Файл Global.asa
Файл Global.asa является необязательным и может содержать объекты, переменные и методы, доступные для каждого из страниц ASP приложения. Все合法ные скрипты браузера могут быть использованы в Global.asa.
Файл Global.asa может содержать следующее:
- События приложения
- События сессии
- Декларация <object>
- Заявление TypeLibrary
- Инструкция #include
Комментарии:Файл Global.asa должен храниться в корневой папке ASP приложения и у каждого приложения может быть только один файл Global.asa.
События в Global.asa
В Global.asa мы можем указать, что делать application и session объекты при запуске и завершении. Код для выполнения этой задачи размещается в обработчиках событий. Файл Global.asa может содержать четыре типа событий: }}
Application_OnStart - Это событие occurs при первом запросе первого пользователя на страницу ASP-приложения. Это событие occurs при перезапуске веб-сервера или после редактирования файла Global.asa. "Session_OnStart" событие occurs сразу после этого события.
Session_OnStart - Это событие occurs каждый раз, когда новый пользователь запрашивает свою первую страницу в ASP-приложении.
Session_OnEnd - Это событие occurs каждый раз, когда пользователь заканчивает сессию. Если в течение установленного времени (по умолчанию 20 минут) не было запроса на страницу, сессия заканчивается.
Application_OnEnd - Это событие occurs после того, как последний пользователь заканчивает свою сессию. Типичное поведение - это событие occurs при остановке веб-сервера. Этот подprogramm используется для очистки настроек после остановки приложения, например, для удаления записей или записи информации в текстовый файл.
Файл Global.asa может выглядеть так:
<script language="vbscript" runat="server"> под Application_OnStart 'некий код end sub под Application_OnEnd 'некий код end sub под Session_OnStart 'некий код end sub под Session_OnEnd 'некий код end sub </script>
Комментарии:Поскольку скриптовые разделители ASP (<% и %>) не могут быть использованы для вставки скрипта в файл Global.asa, мы должны использовать элемент HTML <script>.
Декларация <object>
Объекты с областью действия session или application можно создать с помощью элемента <object> в файле Global.asa.
Комментарии:Элемент <object> должен располагаться вне элемента <script>.
Синтаксис:
<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}> .... </object>
Параметр | Описание |
---|---|
scope | Настройка области действия (действия) объекта (Сессия или Приложение). |
id | Указание уникального идентификатора для объекта. |
ProgID |
ID, связанный с ClassID. Формат ProgID: [Vendor.]Component[.Version]. ProgID или ClassID должны быть указаны. |
ClassID |
Указание уникального идентификатора для COM-объекта класса. ProgID или ClassID должны быть указаны. |
инстанция
Первая инстанция создает объект с именем "MyAd", используя параметр ProgID, и создает объект с областью действия session:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator" </object>
Вторая инстанция создает объект с именем "MyConnection", используя параметр ClassID:
<object runat="server" scope="application" id="MyConnection" classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21" </object>
Эти объекты, заявленные в этом файле Global.asa, могут быть использованы любым скриптом в приложении.
GLOBAL.ASA:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator" </object>
Вы можете ссылаться на этот "MyAd" объект из любой страницы ASP приложения:
Некоторый .ASP файл:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
Заявление TypeLibrary
TypeLibrary (библиотека типов) является контейнером, содержащим DLL файлы, соответствующие COM объектам. Через включение вызова TypeLibrary в Global.asa можно получить доступ к константам COM объектов, и ASP код может лучше сообщать об ошибках. Если приложение вашего сайта зависит от COM объектов, данных типов, заявленных в библиотеке типов, вы можете заявить библиотеку типов в Global.asa.
Синтаксис:
<!--METADATA TYPE="TypeLib" file="filename" uuid="typelibraryuuid" version="versionnumber" lcid="localeid" -->
Параметр | Описание |
---|---|
file | Определяет абсолютный путь к библиотеке типов. Параметр file или uuid, один из них обязателен. |
uuid | Определяет уникальный идентификатор для библиотеки типов. Параметр file или uuid, один из них обязателен. |
version | Опционально. Используется для выбора версии. Если указанная версия не найдена, будет использована ближайшая версия. |
lcid | Опционально. Идентификатор региона для библиотеки типов. |
Значение ошибки
Сервер вернет один из следующих сообщений об ошибках:
Ошибка | Код | Описание |
---|---|---|
ASP | 0222 | Неправильноеspecification библиотеки типов |
ASP | 0223 | Библиотека типов не найдена |
ASP | 0224 | Библиотека типов не может быть загружена |
ASP | 0225 | Библиотека типов не может быть обернута |
Комментарии:Метаданные метки METADATA могут быть расположены в любом месте файла Global.asa (внутри или вне тега <script>). Однако мы все же рекомендуем размещать метаданные метки в верху файла Global.asa.
Ограничения
Ограничениях на содержимое, которое можно ссылаться в файле Global.asa:
Вы не можете отображать текст файла Global.asa. Этот файл не может отображать информацию.
Вы можете использовать объекты Server и Application только в подпрограммах Application_OnStart и Application_OnEnd. В подпрограмме Session_OnEnd вы можете использовать объекты Server, Application и Session. В подпрограмме Session_OnStart вы можете использовать любые内置енные объекты.
Как использовать подпрограммы
Global.asa часто используется для инициализации переменных.
Ниже приведен пример того, как можно определить точное время первого посещения посетителя сайта. Время хранится в объекте Session под названием "started", и значение переменной "started" может быть доступно любому ASP-странице в приложении:
<script language="vbscript" runat="server"> sub Session_OnStart Session("started")=now() end sub </script>
Global.asa также можно использовать для управления доступом к страницам.
Ниже приведен пример того, как можно перенаправить каждого нового посетителя на другую страницу; в этом примере это страница "newpage.asp":
<script language="vbscript" runat="server"> sub Session_OnStart Response.Redirect("newpage.asp") end sub </script>
Мы также можем включать функции в Global.asa.
В следующем примере, когда веб-сервер запускается, также запускается подпрограмма Application_OnStart. Затем подпрограмма Application_OnStart вызывает другую подпрограмму под названием "getcustomers". Подпрограмма "getcustomers" открывает базу данных и затем извлекает набор записей из таблицы "customers". Этот набор записей назначается массиву, и без запроса к базе данных любая страница ASP может получить доступ к этому массиву:
<script language="vbscript" runat="server"> sub Application_OnStart getcustomers end sub sub getcustomers set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open "c:/webdata/northwind.mdb" set rs=conn.execute("select name from customers") Application("customers")=rs.GetRows rs.Close conn.Close end sub </script>
Пример Global.asa
В этом примере мы создаем файл Global.asa, который может рассчитывать текущее количество посетителей.
Application_OnStart устанавливает значение переменной Application "visitors" в 0 при запуске сервера.
Каждый раз, когда новый пользователь посещает, подпрограмма Session_OnStart добавляет 1 к переменной "visitors".
Каждый раз, когда вызывается подпрограмма Session_OnEnd, из переменной "visitors" уменьшается на 1.
Файл 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>В настоящее время онлайн <%-response.write(Application("visitors"))%>!</p> </body> </html>
- Предыдущая страница ASP #include
- Следующая страница ASP почта