[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Web - программирование / AJAX /

xAJAX: Легкий AJAX в массы

Оригинал http://www.i-marco.nl/weblog/archive/2005/11/12/easy_ajax_for_the_masses_with_

Автор: Марко Ван Хилкам

Перевод: Федоринов Григорий

Не так давно я говорил, что буду предоставлять информацию относительно PHP и Ajax. На конференции которую я провел на прошлой неделе 10 ноября 2005г. Я также обещал людям что переведу все что я приготовил для публикации на моем блоге (автор так и не перевел все это дело на Голландский, тем самым очень мне облегчил перевод ).

 Это займет некоторое время. Если вы интересуетесь технологией AJAX эта статья будет неплохим трамплином для использования библиотеки xAJAX. Вместе мы посмотрим, как устроены классы библиотеки xAJAX для PHP. Вы будете удивлены узнав, как легко создавать изящные вебприложения посредством xAJAX.

 Я подготовил 4 рабочих примера, которые показывают работу xAJAX в реальных вебприложениях. Вы можете изучить код, т.к. можно скачать весь набор. Начнем погружение в xAJAX! Библиотека xAJAX

Сейчас много различных библиотек и фреймворков доступно для разработчиков. Честно говоря я думаю, что их слишком много. Я изучил прекрасную библиотеку на javascript - Prototype.js и удивительную библиотеку script.aculo.us для создания визуальных эффектов.

Однако эти решения полностью написаны на javascript и исполняются на машине клиента. Цитируя некоторых именитых PHP разработчиков имеющих посредственные знания в javascript, что делает очень затруднительным использование этих библиотек в PHP приложениях. К счастью я натолкнулся на библиотеку xAJAX, которая полностью написана на PHP, который включает Ajax функции.

При использовании библиотеки xAJAX требуется ОЧЕНЬ мало знаний по javascript, однако при использовании других библиотек я бы сказал что требуются солидные знания javascript. Я полагаю что интеграция Prototype.js в библиотеку xAJAX сделала бы его еще лучше, и разработчикам пришлось бы сталкиваться с javascript еще меньше. Хорошо что все это планируется в новых версиях xajax. Учитывая все это, я полагаю xAJAX это наиболее подходящий выбор для PHP разработчиков, которые будут интегрировать в свои вебприложения Ajax.

 Основные принципы xAJAX При начале работы с xAJAX вы должны привыкнуть к некоторым вещам. Мы должны увидеть в PHP коде xAJAX, некоторый вид циклического процесса, который содержит в себе события на стороне клиент и события на стороне сервера.

Мощь xAJAX заключается в том, что мы можем вызвать PHP функцию напрямую из клиентского окружения. Функции, описанные в бекенде (PHP функции на сервере) доступны во фронтенде (dhtml/javascript на стороне клиента). Очень мощный встроенный механизм. Хорошие новости для разработчиков – фактически 99% javascript генерируются автоматически посредством xajax. Давайте ознакомимся с начальными сведениями – из чего состоит xAJAX .

Я создал четыре различных примера, которые помогут понять различные способы применения xAJAX. Однако есть некоторые принципы относящиеся ко всем примерам. Давайте посмотрим что это за принципы:

Шаг 1: подключение класса – библиотеки xAJAX require_once("xajax.inc.php"); Мы всегда подключаем библиотеку xajax.

Шаг 2: Функция xajax на стороне сервера function makeBold($p_sArg) { $sOut = ''.$p_sArg.''; $objResponse is new xajaxResponse(); $objResponse->addAssign('my_element', 'innerHTML', $sOut); return $objResponse->getXML(); } Функция получает строковый параметр $p_sArg в качестве аргумента и возвращает его в тегах .

Первым делом мы инициализируем объект xajaxResponse который будет обрабатывать ответ на клиентской стороне. Вторым мы назначаем элемент HTML, который будет обновлятся посредством объекта xajaxResponse.

Метод xajaxResponse->addAssign() имеет 3 аргумента:

Значение id тега элемента HTML на нашей странице Свойство, которое мы хостим изменить на стороне клиента Данные, которые мы хотим передать на сторону клиента В заключении, мы возвращаем ответ используя метод xajaxResponse->getXML().

Эти действия ВСЕГДА совершаются на стороне сервера посредством функций Ajax functions. Но здесь я хочу рассказать немного больше о классе xajaxResponse. Кроме того о методе я хочу рассказать поподробней xajaxResponse->addAssign().

Я взял список ниже с домашней страницы xajax и добавил несколько пояснений.

addAssign($sTargetId,$sAttribute,$sData)

Назначает свойству ($sAttribute) элемента, с id равным $sTargetId новые данные ($sData).

В связи с этим мы можем заменять данные определенного элемента новыми, сгенерированными на сервере.

$objResponse->addAssign("contentDiv","innerHTML", "Some Text");

$objResponse->addAssign("checkBox1","checked","true");

 addAppend($sTargetId,$sAttribute,$sData)

Добавляет после, данные ($sData) к свойству элемента ($sAttribute), с id равным $sTargetId. Это значит, что в содержание свойства элемента будет находится старое значение, после которого добавлен результат выполнения функции на стороне сервера.

$objResponse->addAppend("contentDiv","innerHTML", "Some Text");

addPrepend($sTargetId,$sAttribute,$sData)

Добавляет перед, данные ($sData) к свойству элемента ($sAttribute), с id равным $sTargetId.

Это значит, что в содержание свойства элемента будет находится старое значение, перед которым добавлен результат выполнения функции на стороне сервера.

 $objResponse->addPrepend("contentDiv","innerHTML", "Some Text");

addReplace($sTargetId,$sAttribute,$sSearch,$sData) заменяет все вхождения поиска ($sSearch) данными ($sData) в свойстве ($sAttribute) элемента HTML с id = $sTargetId

$objResponse->addReplace("contentDiv","innerHTML", "text","text");

addClear($sTargetId,$sAttribute) Удаляет значение свойства($sAttribute) элемента HTML с id=$sTargetId

$objResponse->addClear("Input1","value");

addCreate($sParentId, $sTagname, $sId, $sType)

Добавляет элемент-потомок ($sTagName) существующего элемента с id= $sParentId, и назначает id элемента-потомка ($sId), также можно задать тип элемента потомка $sType.

$objResponse->addCreate("form1","input", "pass", "password");

addRemove($sElementId)

Удаляет элемент с id=$sElementId из вашего приложения

 $objResponse->addRemove("div1");

addAlert($sMsg) Показывает предупреждение javascript c текстом = $sMsg $objResponse->addAlert("The server said: Hi!");

addScript($sJS) Выполняет код JavaScript, содержащийся в $sJS.

Этим мощным методом мы можем отсылать на сторону клиента для немедленного исполнения.

$objResponse->addAlert("var txt = prompt('get some text');");

Шаг 3: Для всего этого создаем оболочку. После установки одной или нескольких функций конечно же ничего не случается.

Мы должны сделать некоторые обязательные вещи:

 $objAjax = new xajax(); $objAjax->registerFunction('makeBold');

$objAjax->processRequests();

Первым делом мы создаем экземпляр класса xajax. Этот обект будет обрабатывать все события. Вторым мы регистрируем функцию для объекта xAJAX, которую ранее создали.

Делаем это посредством метода xajax->registerFunction().

В заключении мы можем обработать запросы методом xajax->processRequests().

 Вы удивитесь 'Ну и что мы с этого получили?'.

Остался только один шаг для того чтобы доставить до клиентской стороны всю мощь языка PHP. После создания функций и установки объекта xAJAX мы можем отправлять HTML с сервера. Теперь мы добавим xAJAX на страницу HTML, для этого используем простой код, который должен располагаться в теге :

 $objAjax->printJavascript();

Теперь мы можем закончить нашу страницу и использовать функции которые мы описали на первых шагах, напрямую со стороны клиента. В Для завершения нашего примера нам нужно взять элемент HTML с ID = 'my_element':

I'm gonna have my ass kicked by xajax!(этот юмор переводить не буду)

Если мы добавим ссылку на страницу вызывающую наши функции с сервера, то они выделят текст жирным шрифтом без перезагрузки. Вид этой ссылки приведен ниже: Kick his ass! Ура, мы сделали это! Мы создали нашу первую AJAX ссылку. Щелкните по ней, чтобы увидеть магию AJAX. Как вы можете увидеть функции с сервера всегда вызывается посредством javascript функции с таким же именем, только с префиксом xajax_. В нашем примере мы вызываем xajax_makeBold().

 Мы используем document.getElementById('my_element') для изменения содержания элемента HTML. Мы можем определить содержание этого элемента как заключенного в теги и . Двигаемся дальше Это всё? По основам, все! Это действительно легко. Конечно, немного больше вы узнаете, дочитав статью до конца, основные принципы вы уже получили. Теперь продемонстрируем мощь библиотеки и легкость использования в полнофункциональном приложении.

Демонстрации имеют полностью документированный код с понятными объяснениями, как это все работает. Поэтому если статья вас заинтересовала создайте мини сайт и посмотрите xAJAX в действии.

Посмотреть демо сайт!

И в заключении Если вы могли заметить, при прочтении этой статьи, что создание сайтов на AJAX не так сложно, как вы могли себе представить. Библиотека xAJAX сделана на границе Ajax и PHP, что позволяет писать приложения почти также легко как и на обычном PHP. Конечно, есть множество других библиотек, которые определенно стоит посмотреть. Я просто выбрал xajax потому что его можно непринужденно использовать, и при этом имеет такие большие возможности. Я надеюсь что эта статья будет для вас полезна.

Счастливо поAJAXить!

Обновлено: Дж. Макс Вилсон, создатель xajax сообщил прекрасную новость:

 Привет. Я создатель php библиотеки xAJAX. Спасибо за презентацию (прим. перев. : автор проводил презентацию xAJAX)! Сейчас мы ведем сложную работу над новым релизом xAJAX. Мы выпускаем бета версию на следующей неделе. Новые изменения включают: Новая обработка ошибок: Ошибки, которые не являются критическими могут теперь скрываться и записываться только в лог файл или показываться пользователю в предупреждениях. ООП: Вы теперь можете регистрировать объекты и статические методы для вызова через xAJAX.

Эта особенность делает xAJAX легким для применения в различных ООП CMS-разработках (CMS – система управления сайтом). Локализация: xajax по умолчанию использует UTF-8, но мы добавляем возможность определять нужную вам кодировку. Регистрация внешних функций: вы можете теперь регистрировать функции во внешних файлах .php и xajax будет динамически включать файл и вызывать функцию только если она запрошена. Мы имеем сообщество разработчиков, использующих xajax. Вы можете посетить наш форум:

http://www.intuitivefuture.com/xajaxforums/

Здесь можно бесплатно задать вопрос или подать заявку на включение в библиотеку новых возможностей.

Дж. Макс Вилсон Большое спасибо Дж. Макс! Я обязательно протестирую новые возможности. И буду ждать дальнейшего развития библиотки xAJAX!

Источник: http://myjoomla.ru/




Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Web - программирование / AJAX /

Asynchronous JavaScript and XML
06-12-2009   

Когда существующих возможностей становиться мало, а совершенствовать существующее уже некуда, тогда и происходит технологический прорыв. Таким прорывом и есть AJAX (Asynchronous JavaScript and XML) - подход к построению пользовательских интерфейсов веб-приложений, при котором web-страница, не перезагружаясь, сама догружает нужные пользователю данные. AJAX - один из компонентов концепции DHTML... подробнее

Кол. просмотров: общее - 3027 сегодня - 1

AJAX. Взаимодействие с жизненным циклом страницы
06-12-2009   

Итак, запись в таблице отредактирована, осталось её сохранить. Первое, что приходит на ум - это целиком AJAX решение, когда данные собираются из редактируемой строки DataGrid, отправляются на сервер, и в случае успеха клиентская PostBack функция перерисовывает строку таблицы уже только для просмотра... подробнее

Кол. просмотров: общее - 3044 сегодня - 0

xAJAX: Легкий AJAX в массы
03-12-2009   

Не так давно я говорил, что буду предоставлять информацию относительно PHP и Ajax. На конференции которую я провел на прошлой неделе 10 ноября 2005г. Я также обещал людям что переведу все что я приготовил для публикации на моем блоге (автор так и не перевел все это дело на Голландский, тем самым очень мне облегчил перевод )... подробнее

Кол. просмотров: общее - 3158 сегодня - 1

«Hello, закладки!» - Добавить в закладки на AJAX
03-12-2009   

Давайте обсудим более рациональные и эффективные функции для нашего любимого сайта. Начнем с самой простой вещи - кнопки Добавить в закладки. По моему, это самое наболевшее место, которое так и просится чтобы его Ajax’стили... подробнее

Кол. просмотров: общее - 237188 сегодня - 2

Simple AJAX Code-Kit (SACK) и движок DataLife
03-12-2009   

Рыская в интернете в поисках Ajax-готового новостного движка, я наткнулся на давно всем известный . Хотя этот довольно продвинутый php ресурс и содержит элементы Ajax, они по-моему не до конца раскрыты и используются довольно скупо... подробнее

Кол. просмотров: общее - 3242 сегодня - 0



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects