Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум_Сетевые технологии.doc
Скачиваний:
6
Добавлен:
09.11.2018
Размер:
1.02 Mб
Скачать

Порядок выполнения

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

Практикум – порядок выполнения

Сначала рассмотрим сценарий для написания десяти строк текста, некоторые из которых будут «чистым» HTML, другие – ASP (в тегах <% %>), а третьи – сценарием на стороне сервера VBScript (тег <SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>).

  1. О

    <HTML>

    <HEAD>

    <TITLE>Testing the Order of Execution</TITLE>

    </HEAD>

    <BODY BGCOLOR=WHITE>

    Line 1: First HTML line<BR>

    <% Response.Write "Line 2: First ASP line<BR>" %>

    Line 3: Second HTML line<BR>

    <SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>

    Response.Write "Line 4: First server-side VBScript line<BR>"

    </SCRIPT>

    Line 5: Third HTML line<BR>

    <% Response.Write "Line 6: Second ASP line<BR>"%>

    Line 7: Fourth HTML line<BR>

    <SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>

    Response.Write "Line 8: Second server-side VBScript line<BR>"

    </SCRIPT>

    Line 9: Fifth HTML line<BR>

    <% Response.Write "Line 10: Third ASP line<BR>"%>

    </BODY>

    </HTML>

    ткройте текстовый редактор, создайте новый файл и введите следующий код:

Некоторые строки интерпретируются script host ASP, а другие – интерпретатором сценариев VBScript. Все десять строк пронумерованы, и для каждой указан метод, использовавшийся для ее написания.

  1. Сохраните файл как ExecOrder1.asp в каталог Inetpub\wwwroot\BegASPFiles

  2. Вернитесь в браузер и введите адрес http://my_server_name/BegaspFiles/ExecOrder.asp

Как это работает

В этом примере использовались три типа текста:

  • «Чистый» HTML – например, Line 1: First HTML line <BR>

  • ASP-код – например, <%Response.Write “Line 2: First ASP line <BR>”%>

  • Сценарий на стороне сервера в теге <Script> - например,

<SCRIPT LANGUAGE=JSCRIPT RUNAT=SERVER>

response.write ("Line 8: First server-side JScript line<BR>");

</SCRIPT>

Чтобы понять, почему строки идут именно в таком порядке, рассмотрим, в какой последовательности сервер обрабатывает различные элементы кода. У нас есть часть текста, которая вообще не обрабатывается сервером – это «чистый» HTML. Другие части используют ASP-команду Response.Write, которая позволяет записывать что-то в HTML-поток, посылаемый браузеру. Для нас важно различие между элементами второго и третьего типа и его влияние на порядок выполнения.

П

Line 1: First HTML line Line 2: First ASP line Line 3: Second HTML line Line 5: Third HTML line Line 6: Second ASP line Line 7: Fourth HTML line Line 9: Fifth HTML line Line 10: Third ASP line Line 4: First server-side VBScript line Line 8: Second server-side VBScript line

осмотрим на исходный HTML нашей страницы. Для этого выберем View | Source в меню Internet Explorer получим:

Строки 1, 2, 3, 5, 6, 7, 9, 10 в HTML-потоке идут в том же порядке, в каком они были введены. Это строки «чистого» HTML и ASP. Таким образом, можно вводить эти элементы в любом нужном нам порядке, и этот порядок сохранится. Это очень важно, и мы не раз воспользуемся этим преимуществом.

Кроме того, 4 и 8 были сначала пропущены, а затем приписаны в конце исходного текста. Это произошло потому, что сервер прорабатывает код дважды при формировании HTML, посылаемого браузеру. Первый раз он игнорирует все сценарии типа <SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>, но обрабатывает все остальное («чистый» HTML и ASP-код), затем возвращается к сценариям, интерпретирует их и приписывает результат в конец.

Посмотрите пример использования JSCRIPT, что измениться.

Код примера ExecOrder2.asp показан ниже:

<HTML>

<HEAD>

<TITLE>Testing the Order of Execution</TITLE>

</HEAD>

<BODY BGCOLOR=WHITE>

Line 1: First HTML line<BR>

<% Response.Write "Line 2: First ASP line<BR>" %>

Line 3: Second HTML line<BR>

<SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>

Response.Write "Line 4: First server-side VBScript line<BR>"

</SCRIPT>

Line 5: Third HTML line<BR>

<% Response.Write "Line 6: Second ASP line<BR>"%>

Line 7: Fourth HTML line<BR>

<SCRIPT LANGUAGE=JSCRIPT RUNAT=SERVER>

response.write ("Line 8: First server-side JScript line<BR>");

</SCRIPT>Line 9: Fifth HTML line<BR>

<% Response.Write "Line 10: Third ASP line<BR>"%>

</BODY>

</HTML>

Посмотрите результат.