Основные понятия Интернет

Автор: Пользователь скрыл имя, 20 Октября 2012 в 17:46, лекция

Описание работы

Передача данных стала фундаментальной частью вычислений. Сети, разбросанные по всему миру, собирают данные о таких разных предметах, как атмосферные условия, производство продуктов и воздушных перевозках. Группы создают электронные справочные списки, которые позволяют им получать информацию, интересную всем. Любители обмениваются программами для их домашних компьютеров. В научном мире сети данных стали необходимы, так как они позволяют ученым посылать программы и данные на удаленные суперкомпьютеры для обработки, получать результаты и обмениваться научной информацией с коллегами.

Работа содержит 1 файл

Опорный конспект лекций.doc

— 648.00 Кб (Скачать)

Свойства

Многие HTML-контейнеры имеют  атрибуты. Например, контейнер якоря <A ...>...</A> имеет атрибут HREF, который  превращает его в гипертекстовую ссылку:

<A HREF=intuit.htm>intuit</A>

Если рассматривать  контейнер якоря <A ...>...</A> как  объект, то атрибут HREF будет задавать свойство объекта "якорь". Программист  может изменить значение атрибута и, следовательно, свойство объекта:

document.links[0].href="intuit.htm";

Не у всех атрибутов можно изменять значения. Например, высота и ширина графической картинки определяются по первой загруженной в момент отображения страницы картинке. Все последующие картинки, которые заменяют начальную, масштабируются до нее. Справедливости ради следует заметить, что в Microsoft Internet Explorer размер картинки может меняться.

Для общности картины  свойствами в JavaScript наделены объекты, которые не имеют аналогов в HTML-разметке. Например, среда исполнения, называемая объектом Navigator, или окно браузера, которое является вообще самым старшим объектом JavaScript.

Методы

В терминологии JavaScript методы объекта определяют функции изменения  его свойств. Например, с объектом "документ" связаны методы open(), write(), close(). Эти методы позволяют сгенерировать или изменить содержание документа. Приведем простой пример:

function hello()

{ id=window.open("","example","width=400,height=150");

id.focus(); id.document.open();

id.document.write("<H1>Привет!</H1>");

id.document.write("<HR><FORM>");

id.document.write("<INPUT TYPE=button VALUE='Закрыть окно' ");

id.document.write("onClick='window.opener.focus();window.close();'>"); id.document.close();

}

В этом примере метод open() открывает поток записи в  документ, метод write() осуществляет эту  запись, метод close() закрывает поток записи в документ. Все происходит так же, как и при записи в обычный файл. Если у окна есть поле статуса (обычно в нем отображается уровень загрузки документа), то при незакрытом потоке записи в документ в нем будет "метаться" прямоугольник продолжения записи, как это происходит при загрузке документа.

События

Кроме методов и свойств  объекты характеризуются событиями. Собственно, суть программирования на JavaScript заключается в написании  обработчиков этих событий. Например, с объектом типа Button (контейнер INPUT типа button — "Кнопка") может происходить событие click, т.е. пользователь может нажать на кнопку. Для этого атрибуты контейнера INPUT расширены атрибутом обработки события click — onClick. В качестве значения этого атрибута указывается программа обработки события, которую должен написать на JavaScript автор HTML-документа:

<INPUT TYPE=button VALUE="Нажать" onClick="window.alert('Пожалуйста, нажмите  еще раз');">

Обработчики событий  указываются в тех контейнерах, с которыми эти события связаны. Например, контейнер BODY определяет свойства всего документа, поэтому обработчик события завершения загрузки всего документа указывается в этом контейнере как значение атрибута onLoad.

Примечание. Строго говоря, каждый браузер, будь то Internet Explorer, Netscape Navigator или Opera, имеет свою объектную модель. Объектные модели разных браузеров (и даже разные версии одного) отличаются друг от друга, но имеют принципиально одинаковую структуру. Поэтому нет смысла останавливаться на каждой из них по отдельности. Мы будем рассматривать относительно подход применительно ко всем браузерам, иногда, конечно, заостряя внимание на различиях между ними.

JavaScript, объекты, методы, свойства, способ размещения кода, история, совместимость, версии.

Размещение  кода на HTML-странице

Главный вопрос любого начинающего  программиста: "Как оформить программу  и выполнить ее?". Попробуем  на него ответить как можно проще, но при этом не забывая обо всех способах применения JavaScript-кода.

Во-первых, исполняет JavaScript-код браузер. В него встроен интерпретатор JavaScript. Следовательно, выполнение программы зависит от того, когда и как этот интерпретатор получает управление. Это, в свою очередь, зависит от функционального применения кода. В общем случае можно выделить четыре способа функционального применения JavaScript:

  • гипертекстовая ссылка (схема URL);
  • обработчик события (handler);
  • подстановка (entity) (в Microsoft Internet Explorer реализована в версиях от 5.X и выше);
  • вставка (контейнер SCRIPT).

В учебниках по JavaScript описание применения JavaScript обычно начинают с контейнера SCRIPT. Но с точки зрения программирования это не совсем правильно, поскольку такой порядок не дает ответа на ключевой вопрос: как JavaScript-код  получает управление? То есть каким образом вызывается и исполняется программа, написанная на JavaScript и размещенная в HTML-документе.

В зависимости от профессии  автора HTML-страницы и уровня его  знакомства с основами программирования возможны несколько вариантов начала освоения JavaScript. Если вы программист классического толка (С, Fortran, Pascal и т.п.), то проще всего начинать с программирования внутри тела документа, если вы привыкли программировать под Windows, то в этом случае начинайте с программирования обработчиков событий, если вы имеете только опыт HTML-разметки или давно не писали программ, то тогда лучше начать с программирования гипертекстовых переходов.

URL-схема JavaScript

Схема URL (Uniform Resource Locator) —  это один из основных элементов Web-технологии. Каждый информационный ресурс в Web имеет свой уникальный URL. URL указывают в атрибуте HREF контейнера A, в атрибуте SRC контейнера IMG, в атрибуте ACTION контейнера FORM и т.п. Все URL подразделяются на схемы доступа, которые зависят от протокола доступа к ресурсу, например, для доступа к FTP-архиву применяется схема ftp, для доступа к Gopher-архиву — схема gopher, для отправки электронной почты — схема smtp. Тип схемы определяется по первому компоненту URL: http://intuit.ru/directory/page.html

В данном случае URL начинается с http — это и есть определение схемы доступа (схема http).

Основной задачей языка  программирования гипертекстовой системы  является программирование гипертекстовых переходов. Это означает, что при  выборе той или иной гипертекстовой ссылки вызывается программа реализации гипертекстового перехода. В Web-технологии стандартной программой является программа загрузки страницы. JavaScript позволяет поменять стандартную программу на программу пользователя. Для того чтобы отличить стандартный переход по протоколу HTTP от перехода, программируемого на JavaScript, разработчики языка ввели новую схему URL — javascript:

<A HREF="javascript:JavaScript_код">...</A> 
<IMG SRC="javascript:JavaScript_код>

В данном случае текст "JavaScript_код" обозначает программы-обработчики на JavaScript, которые вызываются при выборе гипертекстовой ссылки в первом случае и при загрузке картинки — во втором.

Например, при нажатии  на гипертекстовую ссылку Внимание!!! можно  получить окно предупреждения: (открыть)

<A HREF="javascript:alert('Внимание!!!');">Внимание!!!</A>


А при нажатии на кнопку типа Submit в форме можно заполнить  текстовое поле этой же формы:

<FORM NAME=f METHOD=post  
ACTION="javascript:window.document.f.i.VALUE='Нажали кнопку Click';void(0);"> 
<TABLE BORDER=0> 
<TR> 
<TD><INPUT NAME=i></TD> 
<TD><INPUT TYPE=submit VALUE=Click></TD> 
<TD><INPUT TYPE=reset VALUE=Reset></TD> 
</TABLE> 
</FORM>

В URL можно размещать  сложные программы и вызовы функций. Следует только помнить, что схема javascript работает не во всех браузерах, а только в версиях Netscape Navigator и Internet Explorer, начиная с четвертой.

Таким образом при  программировании гипертекстового  перехода интерпретатор получает управление после того, как пользователь "кликнул" по гипертекстовой ссылке.

Обработчики событий 

Такие программы, как  обработчики событий (handler), указываются  в атрибутах контейнеров, с которыми эти события связаны. Например, при  нажатии на кнопку происходит событие click:

<FORM><INPUT TYPE=button VALUE="Кнопка" onClick="window.alert('intuit');"></FORM>

Подстановки

Подстановка (entity) встречается  на Web-страницах довольно редко. Тем  не менее это достаточно мощный инструмент генерации HTML-страницы на стороне браузера. Подстановки используются в качестве значений атрибутов HTML-контейнеров. Например, как значение по умолчанию поля формы, определяющего домашнюю страницу пользователя, будет указан URL текущей страницы:

<SCRIPT> 
function l() 

str = window.location.href; 
return(str.length); 

</SCRIPT> 
<FORM><INPUT VALUE="&{window.location.href};" SIZE="&{l()};"></FORM> 
<!-- Это комментарий 
...JavaScript-код... 
// --> 
</SCRIPT> 
<BODY> 
... Тело документа ... 
</BODY> 
</HTML>

HTML-комментарии здесь  вставлены для защиты от интерпретации данного фрагмента страницы HTML-парсером в старых браузерах (у высокого начальства еще встречаются). В свою очередь, конец HTML-комментария защищен от интерпретации JavaScript-интерпретатором (// в начале строки). Кроме того, в качестве значения атрибута LANGUAGE у тега начала контейнера указано значение "JavaScript". VBScript, который является альтернативой JavaScript — это скорее экзотика, чем общепринятая практика, поэтому данный атрибут можно опустить — значение "JavaScript" принимается по умолчанию.

Очевидно, что размещать  в заголовке документа генерацию  текста страницы бессмысленно — он не будет отображен браузером. Поэтому  в заголовок помещают декларации общих переменных и функций, которые  будут затем использоваться в  теле документа. При этом браузер Netscape Navigator более требовательный, чем Internet Explorer. Если не разместить описание функции в заголовке, то при ее вызове в теле документа можно получить сообщение о том, что данная функция не определена.

Приведем пример размещения и использования функции:

<HTML> 
<HEAD> 
<SCRIPT> 
function time_scroll() 

d = new Date(); 
window.status = d.getHousrs()+":"+d.getMinutes()+":"+d.getSconds()
setTimeout('time_scroll();';500); 

</SCRIPT> 
</HEAD> 
<BODY onLoad=time_scroll()> 
<CENTER> 
<H1>Часы в строке статуса</H1>

В Internet Explorer 4.0 подстановки  не поддерживаются, поэтому пользоваться ими следует аккуратно. Прежде чем  выдать браузеру страницу с подстановками, нужно проверить тип этого  браузера.

В случае подстановки  интерпретатор получает управление в момент разбора браузером (компонент парсер) HTML-документа. Как только парсер встречает конструкцию &{..} у атрибута контейнера, он передает управление интерпретатору JavaScript, который, в свою очередь, после исполнения кода это управление возвращает парсеру. Таким образом данная операция аналогична подкачке графики на HTML-страницу.

Вставка (контейнер SCRIPT —  принудительный вызов интерпретатора)

Контейнер SCRIPT — это  развитие подстановок до возможности  генерации текста документа JavaScript-кодом. В этом смысле применение SCRIPT аналогично Server Site Includes, т.е. генерации страниц документов на стороне сервера. Однако здесь мы забежали чуть вперед. При разборе документа HTML-парсер передает управление интерпретатору после того, как встретит тег начала контейнера SCRIPT. Интерпретатор получает на исполнение весь фрагмент кода внутри контейнера SCRIPT и возвращает управление HTML-парсеру для обработки текста страницы после тега конца контейнера SCRIPT.

Контейнер SCRIPT выполняет  две основные функции:

  • размещение кода внутри HTML-документа;
  • условная генерация HTML-разметки на стороне браузера.

Первая функция аналогична декларированию переменных и функций, которые потом можно будет  использовать в качестве программ переходов, обработчиков событий и подстановок. Вторая — это подстановка результатов исполнения JavaScript-кода в момент загрузки или перезагрузки документа.

Размещение  кода внутри HTML-документа

Собственно, особенного разнообразия здесь нет. Код можно  разместить либо в заголовке документа, внутри контейнера HEAD, либо внутри BODY. Последний способ и его особенности будут рассмотрены в разделе "Условная генерация HTML-разметки на стороне браузера". Поэтому обратимся к заголовку документа.

Код в заголовке размещается  внутри контейнера SCRIPT

 

<HTML> 
<HEAD> 
<SCRIPT LANGUAGE=JavaScript> 
<FORM> 
<INPUT TYPE=button VALUE="Закрыть окно" onClick=window.close()> 
</FORM> 
</CENTER> 
</BODY> 
</HTML>

 

В этом примере мы декларировали  функцию time_scroll() в заголовке документа, а потом вызвали ее как обработчик события load в теге начала контейнера BODY(onLoad=time_scroll()).

В качестве примера декларации переменной рассмотрим изменение статуса  окна-потомка из окна-предка:

Создадим дочернее окно с помощью следующей функции, продекларировав ее, а затем и  вызвав:

function sel()  

id = window.open("","example","width=500,height=200,status,menu"); 
id.focus(); 
id.document.open(); 
id.document.write("<HTML><HEAD>"); 
id.document.write("<BODY>"); 
id.document.write("<CENTER>"); 
id.document.write("<H1>Change text into child window.</H1>"); 
id.document.write("<FORM NAME=f>"); 
id.document.write("<INPUT TYPE=text NAME=t SIZE=20 MAXLENGTH=20 VALUE='This is the test'>"); 
id.document.write("<INPUT TYPE=button  
VALUE='Close the window' onClick=window.close()></FORM>"); 
id.document.write("</CENTER>")
id.document.write("</BODY></HTML>"); 
id.document.close(); 

<INPUT TYPE=button VALUE="Изменить поле статуса в окне примера" onClick="id.defaultStatus='Привет';id.focus();">

Информация о работе Основные понятия Интернет