ВСТРОЕННЫЕ ОБЪЕКТЫ ASP pony (pony@xakep.ru) Спецвыпуск Xakep, номер #027, стр. 027-058-1 Я полагаю, что ты знаком с синтаксисом VBScript, знаешь, чем отличаются конструкции Do-Loop и While-Wend, и оператор ElseIf не ставит тебя в тупик. Ты пробовал писать asp-скрипты и знаешь, что программный блок должен быть заключен в теги <% и %>. Но у тебя нет опыта объектно-ориентированного программирования (ООП) и часто в скриптах лезут ошибки, смысл которых ты не можешь понять. Мы поможем тебе, старик :). Основные проблемы возникают при использовании внутренних объектов ASP. Из общих принципов ООП известно, что для того чтобы воспользоваться каким-либо объектом, надо создать экземпляр объекта - как бы его копию. Для этого создается объектная переменная, которой и присваивается копия объекта. Процесс создания экземпляра объекта и называется инициализацией. Внутренние объекты ASP не надо инициализировать, поэтому не всегда понятно, откуда они берутся. Эти объекты инициализируются при запуске сервера и живут своей жизнью до следующей перезагрузки. Они в любой момент готовы для использования на любой странице. Внутренних объектов ASP всего 7 штук: объект Response - выполняет пересылку информации клиенту, объект Request - обрабатывает информацию, поступающую с запросом от клиента, объект Server - обеспечивает взаимодействие с сервером, объект Application - кэширует информацию о приложении, объект Session - кэширует информацию о пользователе, объект ObjectContext - используется для запуска транзакций и управления их выполнением, объект ASPError - обеспечивает информацию об ошибках, возникающих в процессе обработки asp-сценария. ОБЪЕКТ RESPONSE Этот объект один из самых важных. Он позволяет из скрипта получить полный контроль над содержимым файла, пересылаемого клиенту. Не только к тому, что лежит между тегами <body> и </body>, но и к заголовку файла. Теперь обо всем по порядку. Метод Response.Write позволяет выводить строку в любом месте документа. Например: <% Response.Write "ASP - это круто!!!" %> выведет в браузере строку "ASP - это круто!!!". Кстати, код: <% str = "ASP - это круто!!!" Response.Write str %> выведет то же самое :). Это самый распространенный метод. Несколько советов: 1) В циклах не надо накапливать результат выполнения операций (типа result = result & "еще какая-то строка"), надо сразу выводить результат методом Response.Write. Накопление конкретно отжирает память. 2) Для вывода кавычек используй двойные кавычки, например: Response.Write "<table width=""100%"">". При этом в файл будет выведено <table width="100%">. 3) Используй вместе с Response.Write строковые константы (например, vbNewLine) и функию Chr(). Это позволит тебе создавать методом Response.Write читаемый html-код. В противном случае весь html-код, выведенный этим методом, будут размещен в одну строку. Второй по важности метод - Response.Redirect. Команда <% Response.Redirect "http://www.microsoft.com" %> отправит тебя непосредственно в гости к дяде Биллу. При использовании команды, так же как и при модификации заголовка файла, следи, чтобы в начале страницы стояла команда <% Response.Buffer = true %>. Buffer является свойством объекта Response и определяет, будет ли кэшироваться файл до отправки его клиенту. |