Лістинг 4.2. Файл GLOBAL.ASA.
<SCRIPT LANGUAGE="VBSCRIPT" RUNAT="Server">
' У цей файл можна додати обробники подій ASP.
' Для створення обробників внесіть до файлу підпрограму з ім'ям
' відповідним події, на яку Ви б хотіли зреагувати.
'Назва події Опис
'SessionOnStart Відбувається, коли користувач вперше вы-
' полняет будь-яку сторінку Вашого застосування
SessionOnEnd Відбувається, коли перевищений ліміт часу
' протягом якого користувач не звертається
' до сторінок Вашого застосування, або якщо мав
' місце явний вихід
'Application_OnStart Відбувається один раз, коли будь-який
' користувач вперше виконує першу сторінку
' Вашого застосування
'Application_OnEnd Відбувається один раз при зупинці Web-сервера
Sub SessionOnStart
End Sub
Sub Session_OnEnd
End Sub
Sub ApplicationOnStart
End Sub
Sub Application On_End
End Sub
</SCRIPT>
Для позначення розділів сценарію GLOBAL.ASA містить теги <SCRIPT>. Ці теги мають особливий атрибут RUNAT=Server, який означає, що що міститься в теге код на VBScript повинен виконуватися на сервері, а не на клієнтові. Функціонально RUNAT=Server означає те ж, що і поєднання кутових дужок і знаку відсотка, використовувані для обозначения серверного сценарію на Web-сторінках. Обробка стандартних подій на сервері записується в GLOBAL.ASA у стандартному синтаксисі. Наприклад, обробку запуску приложения виконує наступний фрагмент коду:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
' Конкретний код застосування
End Sub </SCRIPT>
Хоча GLOBAL.ASA відзначає початок і завершення застосування за допомогою подій, остается неясним, що ж все-таки складає власне застосування. Один з робітників формулировок, запропонована Microsoft, визначає інтернет-застосування як віртуальний каталог зі всіма його файлами. Якщо користувач запрошує Web-сторінку з віртуального каталога під назвою Bookstore, то тим самим він запускає застосування Bookstore, і в GLOBAL.ASA збуджуються події Application_OnStart і Session_OnStart.
Згідно цьому визначенню із застосуванням одночасно можуть працювати декілька программ перегляду. Але подія Application_OnStart відбувається лише один раз: коли перший користувач запрошує Web-сторінку з віртуального каталога. Коли потім сторінки з цього каталога запрошують інші користувачі, збуджується лише подія Session_OnStart.
Тоді як застосування може відноситися до декількох програм перегляду, обращающимся до однієї і тієї ж безлічі Web-сторінок, сесія стосується якоїсь однієї програми перегляду, що звертається до тих же Web-сторінкам. Для конкретної програми перегляду сесія триває, поки програма продовжує запрошувати сторінки віртуального каталога. Якщо ж користувач не запрошує Web-сторінки (з даного віртуального каталога) впродовж 20 хвилин (за замовчуванням), сесія завершується, і збуджується подія Session_OnEnd. Коли в даному віртуальному каталозі завершуються всі сесії, збуджується подія Application_OnEnd.
Як приклад розглянемо наступний сценарій. Два користувачі мають намір посетить на Web-узле застосування Magazine. Користувач 1 виявляється проворнее і быстренько запрошує Web-сторінку DEFAULT.ASP. Тут же збуджуються події Application_OnStart і Session_OnStart. Буквально п'ятьма хвилинами пізніше до застосування звертається користувач 2. Оскільки користувач 1 якось проявляв себе протягом останніх 20 хвилин, застосування Magazine активно. Отже, збуджується лише подія Session_OnStart, сигналізуючи про початок нової сесії. Крім того, тепер для завершення застосування необхідно, аби завершилися обоє сесії.
Протягом наступних 15 хвилин користувач 1 не запрошує никаких сторінок приложения Magazine. Оскільки він не проявляв активності впродовж 20 хвилин, ASP приходить до висновку, що користувач 1 закінчив свою роботу із застосуванням, і збуджує подію Session_OnEnd. Але застосування все ще активно, оскільки протягом останніх 20 хвилин до нього звертався користувач 2.
Користувач 2 працює із застосуванням ще годину, раз у раз запрошуючи нові Web-сторінки. Але врешті-решт він відключається, а через 20 хвилин після того, як він покинув вузол (точніше, востаннє запитав Web-сторінку застосування), збуджується подія Session_OnEnd. Оскільки користувач 2 був останнім користувачем даного застосування, воно завершується, і збуджується подія Application_OnEnd.
Об'єкти.
У ASP є декілька вбудованих об'єктів, які доступні розробникові. Ці об'єкти допомагають управляти багатьма речами: від змінних, до передачі форм. Працювати з ними легко, вони викликаються з коду безпосередньо без якогось особливого синтаксису.
Об'єкт Application.Об'єкт Application (застосування) дозволяє створювати змінні застосування (application variables) - змінні, доступні всім користувачам даного застосування. Всі, хто звертається до Web-сторінкам даного віртуального каталога, можуть спільно використовувати будь-яку змінну застосування визначену для цього каталога.
У лістингу 4.3 наведений приклад програми, яка використовує Об'єкт Application. У нім змінна застосування служить для відстежування часу останнього звернення до сторінок застосування.
Дата добавления: 2016-04-02; просмотров: 548;