Главная страница статей --> Хитрости при программировании php, заметки по базам данных

HTML_AJAX в действии

Источник: realcoding.net

1. Intro.


Файлы к статье: html_ajax.rar

HTML_AJAX специально разрабатывался для облегчения разработки приложений использующих технологию AJAX (Asynchronyse Javascript And XML). Технология довольно давно уже стала популярной и неудивительно. Лично я увидел для себя экономию трафика, и отсутствие перезагрузки страниц, что не может не радовать глаз, никаких перерисовок рисунков, глядишь и появляются новости, нажал кнопку, а информер сообщил тебе, что твоя запись в блог успешно добавлена, и ты действительно уже видишь ее в своем списке последних записей. Мечта для пользователя, а нам девелоперам собственно надо ее осуществлять, и следовать принципу, что приятно пользователю, то девелоперу пополнение счета.

Почему именно HTML_AJAX? Давайте сразу определимся, и будем смотреть в прогрессивное будущее. HTML_AJAX великолепно использует классы, на этом и сыграем. На данный момент насколько меня не обманывает память идет уже разработка PHP6, посмотрим на результат. Я же использую следующую комбинацию PHP5+HTML_AJAX.

Если PEAR у вас установлен, то собственно берем данный пакет отсюда http://pear.php.net/HTML_AJAX. В любом другом случае вы можете просто скачать архив, распаковать его в удобное место и не забыть в ini файле прописать include_path к данному пакету.

2. Простой пример и отступление со вступлением.


Для начала просто покажу пример HTML страницы.

<html>
<
head><title>HTML_AJAX Example</title></head>
<
script src=server.php5?client=all&stub=user></script>
<script>
function checkName(f) {
var u = new user();
var t = document.getElementById(tgt);
if ( u.checkname(f.username.value) == true ) {
tgt.innerHTML = You can register this username;
} else {
tgt.innerHTML = This username is already in use;
}
return true;
}
</script>
<body>
<div id=tgt></div>
<table>
<form onsubmit=return !checkName(this);>
<tr>
<td>
Username
</td>
<td>
<input type=text name=username />
</td>
<td>
<input type=submit value=Check this name />
</td>
</tr>
</form>
</table>
</body>
</html>

Помните, сколько раз вам приходилось регистрировать себе почтовый ящик, или вообще просто регистрироваться на каком-нибудь форуме? Вы заходите на страницу регистрации, заполняете все поля, как приличный пользователь жмете «Зарегистрироваться» и, святая святых, после всего, что вы заполняли, мало того, что значения полей не сохраняются так еще и ваше всюду используемое имя в сети занято. Порядок? Конечно, нет!

Естественно любой программист должен думать об удобной регистрации. В конце концов, для кого мы пишем и трудимся? Да конечно для себя и естественно перечень действий, которые нужны, чтобы пройти регистрацию знаете только вы, а другим надо объяснять. Но это так, наболевшее.

Я не зря заговорил об удобной регистрации. Зайдя на форму регистрации, пользователь естественно может потеряться в том количестве полей, которые вы можете ему предложить. Лично я предпочитаю запрашивать только самые необходимые поля, которые действительно необходимы для регистрации, а остальное оставлять на потом, но периодически напоминать или поставить напоминание где-нибудь на не очень заметном месте, что профайл пользователя не заполнен.

Вернемся к нашему примеру. Что он дает? В принципе фактически ничего, но довольно полезен. Что нам интересно и хотелось бы прояснить? Откуда взялся класс user с методом checkname()? Для этого посмотрим на `3` строку. Он довольно объемист, но пока об этом задумываться не будем.

3. Создание сервера


Собственно скрипт и есть сервер, который обслуживает наши AJAX запросы, обрабатывает данные. Использовать его довольно легко.

<?php
require_once HTML/AJAX/Server.php;
class
user {
public function __construct() {}
public function checkname($username) {
// some query to db to check on existing username $username
if ( $username==md5hash ) return true; else return false;
}
}
$user = &new user();
$srv = new HTML_AJAX_Server();
$srv->registerClass($user);

$srv->handleRequest();
?>

Мы создаем класс user и класс HTML_AJAX_Server, которому и передаем указатель на класс, который мы хотим использовать в своих AJAX запросах. Функция username() может обращаться к базе данных и смотреть на наличие в таблице пользователя с именем $username. Мы же для примера подразумеваем, что любое имя, кроме моего родимого свободно ?.

4. Outro.


К сожалению, мысль широка, особенно если учитывать вопросы регистрации, но объемист и возможно вам захочется сделать что-нибудь свое. Что довольно удобно, так то что при всех запросах в правом верхнем углу появляется слой с надписью Loading… говорящий о том что все работает так как надо.



Похожие статьи:
- Как стать неудачником, или Десятка самых надежных способов гарантировать провал своей маркетинговой
- Как нельзя раскручивать сайты
- Использование SSI в построении сайта
- Интерпретация строковых выражений как функций
- Стиль против дизайна
- Введение в технологию AJAX
- Сложные графики и диаграммы в ASP.NET. Часть пятая – интерактивность.
- Сила параметров XmlElement в Web-методах ASP.NET
- Путеводитель по обмену ссылками
- Частичная проверка правильности ввода данных.
- Postback и Query String - совместить несовместимое
- Секреты правильной раскрутки сайтов
- Средства безопасности ASP.NET. Аутентификация


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |

Контакты
Редакция:
[0.001]