tanenbaum_seti_all.pages (525408), страница 196
Текст из файла (страница 196)
Вся работа производится локально, внутри браузера. С сервером никакого взаимодействия не осуществляется. Как следствие, результат появляется практически мгновенно, тогда как при использовании РНР задержка прибытия страницы с результатом может составлять несколько секунд. Разница между скриптами, работающими на стороне сервере и на стороне клиента, показана на рис. 7.16. Показаны шаги, выполняемые в каждом случае. В обоих случаях все эти этапы производятся после вывода формы на экран.
Шаг 1 состоит в приеме данных от пользователя. Затем следует их обработка, и вот здесь имеются значительные различия. Браувар Сараар пол Модуль РНР Эачавслрт а б Рио. 7.16. РНР.окрипт на сторона сервера (а); сценарий на чачавсг)РС на стороне клиента (б) Эти различия вовсе не означают, что,)ачаБсг!рС «лучшеа, чем РНР, Просто у них различные сферы применения. РНР (а с ним неявно и ) БР, и АБР) приме- Всемирная паутина ()ллл/т/)/) 7ЗЗ няется тогда, когда необходимо взаимодействовать с удаленной базой данных.
,)ачаВсг(РС используют тогда, когда требуется взаимодействие с пользователем в пределах его компьютер< Разумеется, возможно (н довольно часто осуществляется) одновременное использование РНР и )ачаБсйрс, хотя они и не могут, например, обрабатывать одно и то же событие (типа нажатия кнопки) илн производить одно и то же действие. ,)ачаБсг(рс — это полноценный язык программирования, ничуть не слабее по возможностям, чем С нли ) ача.
В нем есть понятия переменных, строк, массивов, объектов, функций и всех привычных управляющих структур. К тому же он обладает множеством полезных свойств, специфичных для веб-страниц, включая возможность управления окнами и фреймами, установки и получения соо(т(е, работы с формами и гиперссылками. Пример программы на )ачаЯсг(рС с рекурсивной функцией приведен в листинге 7.12. Листинг 7.12. Программа на )ачаЯст)рт для подсчета и вывода факториалов <Ьтв)> <Ьеас> <зсг1рС 1апдиаде-")ачаесг1рС" Суре-"Сехг/,(ечеесг1рС"> типсС1оп гееропзе(СееС тоге) ( типсс!оп тассог1а1(п) (!т (и — О) гесигп 1: е1де гесигп п * гассогта1(п - 1) ) чаг г-еча)(СезС тога.пивоег.ча1ие); //г-еведенный аргунент Оосивепт.вутогв.вусехг.ча1ие - 7результаты;'тп"; тог (чаг 1 - 1;1<-г;1++)//Вывестн одну строну от 1 до г оосивепс.вутогв.лусехс.ча)ие +- (1 ч ч- кытассогта1(!) + "тп ); </5сг1рС> </Ьеаб> Ьобу> <тога паве-"вутогв > Введите число: <1приС Суре- СехС" паве- пивЬег"> <1приС Суре-"ЬиССоп" ча1ие-"Подсчет таблицы факторналов" опс1!сй-"гееропее(СЬ)а Гога)"> <р> «Сехсагеа паве-"вуСехС" гоыз-"25" со1д->00"> </Сехгагеа> </тогв> </босу> </ЬСв)> С помощью )ачаБсг(рс можно также отслеживать появление мыши над определенными объектами на странице.
На многих веб-страницах с ) ачабсг(рг можно заметить, что при наведении курсора мыши на какой-нибудь текст или изображение что-нибудь происходит. Часто при этом меняется изображение или вдруг выскакивает меню. Такое поведение легко программируется на)ачабсг!РС и несколько оживляет веб-страницы. Пример приведен в листинге 7.!3. Листинг 7. ! 3. Интерактивная страница, отвечающая на движения мышью <ПСв1> <Ьеаб> <зсг!рС 1апдиаде-")ачазсг!рС" Суре- Секс/Вачазсг1рС > 734 Глава 7.
Прикладной уровень (т(досшепС,щуог1) Сосчаепт.щуош г) - пеи Пггзу(): Ооснаепт.щуог1[01 ЬССР.//нм.с . ~~ошщ щтог)[П Ш~Р:~~~ ст "н и)/зтт '.а сосотппт.аунг)[01 -"ЬССР://мм.ст.то.п1/азС )а Шпст1оп рор(щ) ( тзг огн-щттр://мм.ст.чп.п)/етт/1'з и',О...и(стьгзо,ае)001-000 ): Рщ)ОРи»п-и(поп.преп(сосиаепт.аунг)[щ), щуи1пс . и </тсг(РС> <Аеас> <Р з Ьгет- т оппонтеотег-'рор <в>)у> (О); гесогп га1эе: > котзнон </а»</р> : > нон </з / <р»<з ге < Z Г- Ф опноотеачег-"рор(1]; гетогп 101те: > щенон < а»< р <р»<а пгегый опкоптеочег- рор(2); гесчгп гз те; Ро р 1 е; > К пнн </а»</ > </ов)у> </ПШ1 > ) ачабспрт — это не единственный инструмент для создания веб-страниц с ви. сокой степенью интерактивности. Еще один метод связан с использованием ш. плотов.
Это небольшие программы на,)ача, скомпилированные в машиннме ввструкции виртуального компьютера, называемого,) чМ [/ача т/!ггпа[ Масйпе— виртуальная машина вача). Апплеты могут внедряться в НТМ[:страницы (мскзу тегами <зрр1 ет> и </зрр1 ет>) и интерпретироваться ) С/М-совместимыми браузерз. ми. Поскольку перед выполнением )ача-шпшеты проходят стадию интерпретзцэв, интерпретатор может помочь избежать выполнения «нехороших действий>. По крайней мере, теоретически такая возможность существует.
На практике созлт. тели апплетов обнаружили почти бесконечный поток ошибок в библиотеках шо да-вывода 3ача Ответ корпорации м!свпо[с на 5ача-апллеты фирмы щпп состоял в подклюте """ " веб сцпницам управляюпсих элементов Асс!чеХ вЂ” программ, скомпилнрв ванных лля машинного языка процессора Репсшш и выполняемых на аппаратвои уровне. Это свойство ел делает их значительно более быстрыми и гибкими нси интерпретируемые! ача-аппп 1 -апплеты, поскольку они могут делать все то же сп' ' что и обычная программа Когда !пгетпет пе еСЕхр!Огегвид тна рапицеу рш Ю' Х, агружает его, идентифицирует и исполняет Одн элемент ст(чеХ, он з о ка и ~~~~"~ проТлм/н ~ж~ юР~дить пРоблемы защиты ннфор"" Ранги . ольку почти все браузеры могут" Ратимса в главе 8.
Поск аммы как на Сача, та щий создать страни нцу с высокой степень , т к и на )ачаЯСПРС, разработчик крайней мере из двух значения для него не им зтнн технологий, А енью интерактивности, может выбпрз „( имеет,токним об . А если вопрос платформонезавпси о таково: до твляегся еще и Аст[чеХ. Общее пр" + [ачабспрС обеспечивает "Ра Р нвает простоту и ечнвшот бы + Упрзвлшовше але отрогу выполнения.
е алементы АссгчеХ б орости вып ст обгоншот по скорости выл~ Всемирная паутина (МЧЧЧ! 73В Во всех браузерах реализована строго одна и та же версия )ЧМ, а вот найти дю браузсра с одинаковой реализацией( ачаВспрс почти мевоаможио. ПоэтомУ )ача-апплеты легче переносятся с платформы ма платформу, чем )ачаБспрс. Существует множество увесистых (часто более 1000 страниц) книг, посвященных )ачаБспрс.
Вот некоторые из иих (Еззнош, 2001; Нвгпз, 2001; Мсребпез, 2001). Прежде чем закончить тему динамических веб-страниц, подведем краткие итоги наученного. Целые веб-страницы могут создаваться сна лету* с помощью раз«ообразиых скриптов, работающих ма сервере. С точки зрения получающего мх браузера, это обычные НТМ1:страницы, которые нужно просто вывести на экран. Скрипты можно создавать посредством технологий Рег!, РНР, )ЗР или АКР, как показано на рис.
7.17. Серэерная мамина ИищэпретзтОР ХВ. Инмрпрещюр хмс Интерпретыор итмс Интерпретатор Подзпючзеиыр эачеэгярс модуль рис. 7.1 7. Раэпичные способы создания н вызова динамических страниц Генерация динамических страниц возможна и иа стороне клиемта. Веб-стра»нны можно писать иа ХМ1. и затем конвертировать в НТМ1., задавая внешнее прелставлеиие в ХЗ(:файле. Программы иа)ачаЯспрс могут производить любые вычисления. Наконец, подключаемые молули и вспомогательные приложения мо'уг использоваться ддя отображения самых рззнообразных форматов. "ТТр — протокол передачи гипертекста Станлартный протокол для передачи дамных по Всемирной паутине — это НТГР (НурегТехс Тгапз(ег Ргогосо! — протокол передачи гипертекста).
Он описывает сообпсемия, которыми могут обмениваться клиенты и серверы. Кзлшое взаимодействие состоит из одногоутАБСП-запроса, иа котоРый следует один ответ, напоминающий арта ВРС 022 М1МЕ. Все клиемты и все серверы должны следов аююлй отвес стандарта вдевать эгону протоколу. н колу, Он определен в КРС 2б10. В этом разделе мы рас- сиоЧ некоторые нанб лее в е е СВОИ Соединения Обычный способ взаимодействия браузера с сервером заключается в установке ТСР- м 80 сервера, хотя формально зта процсаура не является .соелимения с портом обяза й ц язэтельной.
ценность исп использоэанмя ТСР— з том, что ни браузерам, ни серве- 736 Глава 7. Прикладной уроввнь Мвтоды Несмотря на то что НТТР был разработан специально для использования в вебтехнологиях, он был намеренно сделан более универсальным, чем это было необходимо, так как рассчитывался на будущее применение в объектно-ориентированных приложениях. По этой причине в дополнение к обычным запросам вебстраниц были разработаны специальные операции, называемые методами.