Интеграция Ajax-XMLHttprequest и Perl/PHP. Часть 2.

 
Михаил Смирнов  

Книги по программированию на Ozon.ru:
Ajax в действии - купить Изложенный ниже подход позиционируется в русле JavaScript/CGI-программирования, представленного в первой части статьи. Особенностью настоящего раздела является использование JavaScript и объекта XMLHttpRequest на базе асинхронной технологии Ajax (Asynchronous JavaScript and XML). Строго говоря, Ajax не является технологией. Ajax объединяет в себе ряд самостоятельных технологий. И как было справедливо отмечено в первой части статьи - "технологические прорывы, возникают как раз на стыке моно технологий".

Известно, что одним из классических недостатков, при построении Web-интерфейса, является разрыв соединения между клиентом и сервером, сразу после того, как запрашиваемый клиентом ресурс загружен. Это в значительной степени диктуется природой HTTP протокола. В случае применения Ajax, веб-страница не перезагружается полностью в ответ на каждый запрос броузера, что субъективно воспринимается как ускорение работы. Посредничесто Ajax создает асинхронный режим взаимодействия между броузером и сервером.

В настоящей статье исследованы возможности интеграции Ajax и Perl/PHP-скриптов. Причем, CGI-сценарий выступает в роли виртуального броузера, работа которого маскируется Ajax, точно также как это происходит при взаимодействии Java и CGI (см.Java/CGI-программирование). Ниже представлены несколько примеров, иллюстрирующих интеграцию Ajax и Perl/PHP.

Тексты Perl-скриптов достаточно тривиальны и не рассматриваются. Экземпляр объекта XMLHttpRequest позаимствован из статьи D.McLellan и оформлен в виде подпрограммы loadXMLDoc(). С помощью этой функции реализуется метод GET при запросах к серверу во всех примерах. Интерес представляют интерпретации подпрограммы processReqChange(), выполняющей обработку ответа сервера с помощью свойства responseXML объекта XMLHttpRequest.

В первом примере реализован классический вариант вывода информации (котировка EURO/USD) в текстовые поля HTML-формы - теги <INPUT>. Причем, котировка EURO/USD обновляется динамически.

Во втором примере продемонстрирован вывод текстовой и графической информации в произвольные HTML-теги. Текст и графика обновляются также динамически.

В третьем примере показан вариант вывода массива текстовой информации из Базы Данных по SQL запросам.

В четвертом примере представлена реализация явного виртуального Perl-броузера, который выполняет запрос ресурса новостей CNN.

В пятом примере решается проблема с кириллицей. Отмечу, попутно, если используется PHP, то в принципе можно применить функцию iconv($INPUT_CHARSET, $OUTPUT_CHARSET, $yuor_text). Однако, невсегда версия PHP содержит данную функцию или кодировки не поддерживаются в тарифном плане, или ... ну и так далее. Поэтому, бывает проще написать свой скриптик-функцию. Скрипт должен на лету выполять преобразование символов кириллицы в специальные коды вида &...;. Основное достоинство такого подхода заключается в том, что клиенту-броузеру нет необходимости выполнять обратное преобразование. Ему и так все "понятно". Если, кому-то надо, могу выслать исходник на PHP или Perl, пишите.

Пример Шестой. Было много вопросов типа: "почему нет примера с методом POST?". Принципиально отличий от GET не много. Изменения касаются подпрограммы из статьи D.McLellan. Скрипт (formPost()), выполняющей обработку ответа сервера, на основе свойства responseXML объекта XMLHttpRequest, практически тот же. Если используется исключительно латиница, то скрипт loadXMLDoc() дополняется следующими строками:

	req.open("POST", url, true);   
    	param="text="+message; 
	req.send(param);
и все, где "text" имя поля <textarea> POST формы, message - текс сообщения. С кириллицей, как всегда сложности. Решение состоит в преобразовании символов кириллицы в шестнадцатичеричные коды вида %xx. Подпрограмма, реализующая метод POST как для кириллицы, так и для латиницы - loadXMLDoc_2(): скачать

Часть 1. CGI программирование вывода в клиентскую среду.
Часть 3. Ajax/Perl и высоконагруженные проекты. Измерение времени загрузки содержимого.
Прикладное программирование на Perl
Книги по программированию на Ozon.ru:
Ajax на практике - купить
 
 
Обменный автомат:


Home http://www.smirnov.sp.ru/
The elements of the probabilistic analysis of the Forex markethttp://www.smirnov.sp.ru/forex_html/forex3eng.html
Currency Prediction Software of market FOREXhttp://www.smirnov.sp.ru/forex_html/usd_euro15.html
Technology of a GUARD of text files from unauthorized copyinghttp://www.smirnov.sp.ru/graphic_text/pastxt1eng.html
Software for evaluating of ground resolution of remote sensing optical-systemhttp://www.smirnov.sp.ru/special/index.html
Objective estimation of digital scanners qualityhttp://www.smirnov.sp.ru/scanner/scan02.html
Watermarking photoshttp://www.smirnov.sp.ru/watermark/index.html
Restoration of imageshttp://www.smirnov.sp.ru/scanner/filter/index.html
Visual Gallery Manager 2.0http://www.smirnov.sp.ru/vgm20/index.html
Physical simulation of optical-electronic system of high-resolutionhttp://www.smirnov.sp.ru/simult_oes/index.html
Technology of counteraction to falsification of credit cardshttp://www.smirnov.sp.ru/watermark/cards/card_eng.html
Free Advertisment. Free Bulletin Board (english).http://www.smirnov.sp.ru/wwwboard/engboard.html
Free Advertisment. Free Bulletin Board (russian).http://www.smirnov.sp.ru/wwwboard/rusboard.html
Contact ushttp://www.smirnov.sp.ru/wwwboard/eng/contact.html
Ozon Bookshophttp://www.smirnov.sp.ru/ozon/index.html
Chat: CGI/Java Integrationhttp://www.smirnov.sp.ru/wwwboard/chatlink.html
The latent transfer and storage of the confidential information on the Internet and cellular communicationhttp://www.smirnov.sp.ru/watermark/conf_data/guarding_eng.html
Software Prices http://www.smirnov.sp.ru/prices/prices_eng.html
Smirnov HomePage http://www.smirnov.sp.ru/man/page1eng.html

St. Petersburg, Russia
Mobile: +7(921)343-33-97
E-mail: smirnoff04@mail.ru
http://www.smirnov.sp.ru/