- •История развития Internet. Используемые в Internet технологии.
- •Определение типа документа (dtd). Назначение, основные конструкции.
- •Язык sgml
- •Язык html. Базовая структура html документа.
- •Язык html. Секция head и метаинформация.
- •Язык html. Фреймы.
- •Язык html. Формы и элементы ввода.
- •Язык html. Таблицы. X 2
- •Каскадные таблицы стилей. Локальные таблицы стилей.
- •Каскадные таблицы стилей. Глобальные таблицы стилей.
- •Каскадные таблицы стилей. Связные (внешние) таблицы стилей.
- •Объектная модель документа. Интерфейсы Core dom2.
- •Объектная модель документа. Интерфейсы html.
- •Объектная модель документа. Интерфейсы для управления таблицами.
- •Интерфейс htmlTableElement
- •Клиентские сценарии. Модель событий. Обзор.
- •Перехват события
- •Просачивание (всплытие) события
- •Отмена события
- •Клиентские сценарии. Модель событий. События мыши
- •Типы событий мыши. Dom 2 определяет следующие типы событий мыши:
- •Клиентские сценарии. Модель событий. События клавиатуры.
- •Клиентские сценарии. Модель событий. События окна.
- •Клиентские сценарии. Модель событий. Объект Event.
- •Клиентские сценарии. Связывание сценариев.
- •Клиентские сценарии. Язык JavaScript. Обзор, объектная модель. X 2
- •Возможности языка
- •Объектная модель браузера
- •Объектная модель документа
- •Клиентские сценарии. Язык JavaScript. Объект RegExp X 2
- •Клиентские сценарии. Язык JavaScript. Объекты Function, Object, Number
- •Клиентские сценарии. Язык JavaScript. Таймеры
- •Серверные сценарии. Web Server. Передача данных на сервер.
- •Серверные сценарии. Asp. Основные конструкции и объекты.
- •Серверные сценарии. Asp. Доступ к базе данных.
- •Язык java. Обзор. Основные особенности X 2
- •Язык java. Пакеты и организация пространства имен.
- •Область видимости
- •Язык java. Интерфейсы.
- •Интерфейсы
- •Interface имя_интерфейса {
- •Язык java. Апплеты. Включение апплетов на html страницу.
- •Язык java. Потоки.
- •Xml. Основные понятия и конструкции языка.
- •Xsl. Основные понятия и конструкции языка. Xslt преобразование
Клиентские сценарии. Язык JavaScript. Таймеры
http://www.rusdoc.ru/articles/17239/
На самом фундаментальном уровне чрезвычайно важно представлять, как работают таймеры в javascript. Очень часто работа таймеров кажется противоречащей интуиции в силу того, что все они запущены внутри одного потока. Но давайте начнем с характеристики трех основных функций, которые мы используем, чтобы создавать и управлять нашими таймерами.
var id = settimeout(fn, delay); — создает единичный таймер, срабатывание которого выливается в вызов определенной функции после указанной задержки. Данный метод возвращает уникальный id, с помощью которого можно в дальнейшем отменить таймер.
var id = setinterval(fn, delay); — похож на предыдущий метод settimeout, но совершает вызовы заданной функции постоянно (каждый раз с заданной задержкой), пока не будет отменен.
clearinterval(id);, cleartimeout(id); — принимают в качестве параметр id таймера (возвращаемый двумя предыдущими методами) и предотвращают дальнейшие вызовы таймера.
Для того чтобы уяснить внутренние аспекты работы таймеров, стоит учесть одну важную деталь, которую стоит осветить: задержка при выполнении таймера не гарантируется. Так как весь javascript исполняется в браузере в один поток, то асинхронные события (например, клики мышкой или таймеры) запускаются только по возникновению «окна» в этом основном потоке (обработчики событий и вызываемые функции, фактически, «встраиваются» в основной поток выполнения).
У javascript-движка операции выполняются в один поток, что заставляет асинхронные события ждать своей очереди на исполнение.
settimeout и setinterval имеют фундаментальные различия в исполнении асинхронного кода.
Если таймер не может выполниться в запланированное время, то он будет отложен до следующей возможной точки запуска (которая может быть достаточно далека от первоначального ожидаемого момента).
В случае выставления интервалов, функции могут запускаться друг за другом, безо всякой задержки, если их выполнение (или другие асинхронные события) «растянут» их на достаточное время (равное или большее, чем обозначенная задержка).
На данный момент важными мне кажутся два вывода. Первое, если вы планируете регулярно совершать какое-то действие (например, опрашивать сервер), лучше всего это будет производить через setinterval: этот метод будет выполнен, в общем случае, быстрее, чем settimeout, и не будет накапливаться в стек. Однако, во-вторых, если речь идет о нагруженных вычислениях, когда вы экономите процессорное время (может быть, в ущерб своевременности обновления интерфейса), то ваш выбор — это settimeout. Он гарантирует, что между запусками заявленной функции пройдет времени не меньше, чем требуется.
Серверные сценарии. Web Server. Передача данных на сервер.
PHP: http://www.lauc.ru/index.php?option=com_content&task=view&id=232&Itemid=173
ASP: http://www.codenet.ru/webmast/iis/htm/asp/iiwaform.php
ASP: http://cetis.ru/library/asp/request.html#Form
Метод GET: action?name1=value1&name2=value2&name3=value3
Метод POST: Содержимое формы кодируется точно так же, как для метода GET (см. выше), но вместо добавления строки к URL содержимое запроса посылается блоком данных как часть операции POST. Если присутствует атрибут ACTION, то значение URL, которое там находится, определяет, куда посылать этот блок данных.
Внутри PHP-скрипта имеется несколько способов получения доступа к данным, переданным клиентом по протоколу HTTP. До версии PHP 4.1.0 доступ к таким данным осуществлялся по именам переданных переменных (напомним, что данные передаются в виде пар «имя переменной, символ «=», значение переменной»). Таким образом, если, например, было передано first_name=Nina, то внутри скрипта появлялась переменная $first_name со значением Nina. Если требовалось различать, каким методом были переданы данные, то использовались ассоциативные массивы $HTTP_POST_VARS и $HTTP_GET_VARS, ключами которых являлись имена переданных переменных, а значениями – соответственно значения этих переменных. Таким образом, если пара first_name=Nina передана методом GET, то $HTTP_GET_VARS["first_name"]="Nina".
Использовать в программе имена переданных переменных напрямую небезопасно. Поэтому было решено начиная с PHP 4.1.0 задействовать для обращения к переменным, переданным с помощью HTTP-запросов, специальный массив – $_REQUEST. Этот массив содержит данные, переданные методами POST и GET, а также с помощью HTTP cookies. Это суперглобальный ассоциативный массив, т.е. его значения можно получить в любом месте программы, используя в качестве ключа имя соответствующей переменной (элемента формы).
<?php
$str = "Здравствуйте, ".$_REQUEST["first_name"]." ".$_REQUEST["last_name"]."! <br>";
$str.= "Вы выбрали для изучения курс по ".$_REQUEST["kurs"];
echo $str;
?>
Используя объект ASP Request, можно создавать простые, но мощные сценарии для сбора и обработки данных, вводимых в формы HTML. Объект ASP Request предоставляет два семейства, облегчающих получение сведений, введенных в форму и отправленных по запросу URL.
Семейство QueryString возвращает значения формы, переданные веб-серверу, в виде текста следующего после вопросительного знака в запрошенном адресе URL. (HTTP GET)
Привет, <%= Request.QueryString("FirstName") %>
<%= Request.QueryString("LastName") %>.
Вам <%= Request.QueryString("Age") %> лет!
Для получения значений. отправленных методом POST, можно использовать семейство Form объекта ASP Request.
Добро пожаловать, <%= Request.Form("firstname") %>.
Ваши любимые сладости - <%= Request.Form("sweets") %>!
html file:
...
<input type='text' name = 'firstName'>
<input type='text' name='lastName'>
<input type='hidden' name='status' value='new'>
...
Request: QueryString, Form
asp file:
<%
var Name=Request.Form('firstName')();
var Family=Request.Form('lastName)();
var Status=Request.Form('Status')();
if (Status='new')
{
Response Write('Пользователь '+name+' не зарегистрирован')();
}
%>
