ASP - Написание процедур
Процедура является группой команд сценария, выполняющих определенную задачу и возвращающих значение. Можно определять собственные процедуры и вызывать их из сценария любое число раз.
Определение процедур можно поместить в тот же файл .asp, из которого они будут вызываться, или можно поместить наиболее часто используемые процедуры в общий файл .asp и использовать директиву #include, чтобы включить его в другие файлы .asp, вызывающие процедуры. Кроме того, можно реализовать те же функции в компоненте COM.
Определение процедур
Определение процедур должны быть заключены в теги <SCRIPT> и </SCRIPT> и соответствовать правилам объявленного языка сценариев. Для процедур на языках, отличающихся от основного языка сценариев, служит элемент <SCRIPT>. Для процедур на основном языке сценариев служат ограничители сценариев (<% и %>).
При использовании тега HTML <SCRIPT> для указания, что сценарий следует выполнять на сервере, необходимо использовать два атрибута. Синтаксис использования тега <SCRIPT>:
<SCRIPT LANGUAGE=JScript RUNAT=SERVER> определение процедуры </SCRIPT>
Атрибут RUNAT=SERVER указывает, что сценарий должен быть выполнен на веб-сервере. Если не установить этот атрибут, данный сценарий будет выполнен в обозревателе клиента. Атрибут LANGUAGE определяет язык сценариев, используемый в данном блоке сценария. Можно указать любой язык, для которого на сервере установлен обработчик сценариев. Для указания VBScript случит значение VBScript. Для указания JScript случит значение JScript. Если не указать атрибут LANGUAGE, будет считаться, что в блоке сценария использован основной язык сценариев.
Команды в блоке сценариев должны составлять одну или несколько полных процедур на выбранном языке сценариев. Например, следующие команды определяют процедуру JScript MyFunction.
<HTML> <SCRIPT LANGUAGE=JScript RUNAT=SERVER > function MyFunction() { Response.Write("Вызвана процедура MyFunction().") } </SCRIPT>
Важно! Не вставляйте между тегами <SCRIPT> на стороне сервера команды сценариев, не являющиеся частью процедур. Команды, не являющиеся частью процедуры, могут вызвать непредсказуемые результаты, так как порядок выполнения этих команд не определен. Кроме того, в процедуре нельзя использовать директиву вывода ASP <%= %>
. Вместо этого для отправки содержимого обозревателю следует использовать инструкцию Response.Write.
Вызов процедур
Для вызова процедуры ее имя следует включить в команду. При вызове процедур JScript из VBScript необходимо использовать скобки после имени процедуры; если процедуре не требуются аргументы, оставьте скобки пустыми. При вызове процедур VBScript или JScript из JScript после имени процедуры всего следует ставить скобки.
В VBScript для вызова процедуры также можно использовать ключевое слово Call. Однако, если вызываемой процедуре требуется аргументы, список аргументов должен быть заключен в скобки. Если ключевое слово Call опущено, также следует опустить скобки, в который заключен список аргументов. Если для вызова любой встроенной или пользовательской функции используется синтаксис Call, значение, возвращаемое функцией, теряется.
Следующий пример иллюстрирует создание и вызов процедур с использованием двух разных языков сценариев (VBScript и JScript).
<%@ LANGUAGE=VBScript %> <HTML> <BODY> <% Echo %> <BR> <% printDate() %> </BODY> </HTML> <% Sub Echo Response.Write "<TABLE>" & _ "<TR><TH>Имя</TH><TH>Значение</TH></TR>" Set objQueryString = Request.QueryString For Each strSelection In objQueryString Response.Write "<TR><TD>" & p & "</TD><TD>" & _ FormValues(strSelection) & "</TD></TR>" Next Response.Write "</TABLE>" End Sub %> <SCRIPT LANGUAGE=JScript RUNAT=SERVER> function printDate() { var x x = new Date() Response.Write(x.toString()) } </SCRIPT>
Примечание. VBScript вызывает функции JScript, не зависящие от регистра.
Передача массивов в процедуры
Чтобы передать весь массив процедуре VBScript, используйте имя массива и следующие за ним пустые скобки; в JScript — пустые квадратные скобки.
Оставить комментарий
Комментарии
Твою мать, ну нафига, называть функции процедурами?
Путает ужасно!