TopSladur.com - Кой е най-големия?
Помогни ни да направим Uroci.net по - богат! Добави урок
Категории Други уроци Adobe Photoshop Adobe Illustrator Adobe Flash Adobe Fireworks DreamWeaver CSS и HTML Corel Draw Image Ready PHP SEO CMS Microsoft Windows Microsoft Word Microsoft Excel PowerPoint Microsoft Access Microsoft Publisher Linux Visual basic JavaScript Ajax
3ds Max Maya 3D C++ Sound Forge Gimp SWiSH

XAJAX

skus   трудност:    видян: 3496

XAJAX всъщност е просто библиотека написана на PHP, която позволява използването на AJAX технологията. Ако не знаете, какво е AJAX погледнете предишните уроци. За разлика от класическите заявки през HTTP с помощта на JavaScript при XAJAX заявките се изпращат и връщат посредством JS, но се обработват изцяло с PHP. Другата разлика е в сложността. Библиотеката включва предварително написани функции, които могат да бъдат използвани в приложенията. Лесното тук, е че за да си направите проста страничка с XAJAX е нужно съвсем малко усилие. Първо изтеглете и си разархивирайте пакета от тук:

http://prdownloads.sourceforge.net/xajax/xajax_0.2.4.zip?download , след това я сложете в папка например ajax/. С това приключва инсталацията. Създаваме си проста HTML страница (по-точно .php тъй като пакета е за PHP). Създаваме обикновена форма за пресмятане:

<form action="?">
Число 1:<br/><input type="text" id="t1"/><br/>
Число 2:<br/><input type="text" id="t2"/><br/>
<input type="button" onclick="xajax_sub(document.getElementById('t1').value,

document.getElementById('t2').value)" value="+"/><br/>
<input type="button" onclick="xajax_min(document.getElementById('t1').value,

document.getElementById('t2').value)" value="-"/><br/>
<input type="button" onclick="xajax_po(document.getElementById('t1').value,

document.getElementById('t2').value)" value="x"/><br/>
<input type="button" onclick="xajax_del(document.getElementById('t1').value,

document.getElementById('t2').value)" value="/"/><br/>
Резултат: <label id="res"></label>
</form>

Повечето от Вас разбират, че създадохме 2 полета и четири бутона. При натискане бутони извикват съответната функция, като трябва да се знае, че всяка функция например sub(), ще се използва както си е sub(), но в при извикването и в HTML, пред нея слагаме задължително xajax_. На тези четири функции задаваме двата атрибута така:

xajax_function(число1, число2). От тук нататък php ще свърши останалата работа. Зада работи скрипта трябва да извикаме библиотеката ето така: include("ajax/func.php"); сега да обясня, всяко нещо, което ще правим се състои от 3 файла: func.php , func.common.php и func.server.php.

Ако желаете може и да си поберете всички функций в един файл. Файла func.php трябва да съдържа (няма значение, в коя папка е):

require("func.common.php"); //Извикваме common файла
$xajax -> printJavascript('ajax/''); //Пътя до библиотеката

Готово, това ще изпише JS, който ще извика всичко необходимо. Сега common файла:

require_once("ajax/xajax.inc.php"); //Главния файл на xajax
$xajax = new xajax("ajax/func.server.php");
$xajax -> registerFunction("sub");
$xajax -> registerFunction("min");
$xajax -> registerFunction("po");
$xajax -> registerFunction("del");
//Регистрираме функцийте, който ще използваме

И накрая server файла.

function sub($a, $b) {
$r = new xajaxResponse(); //Регистрираме $r
$r -> addAssign("res", "innerHTML", Int($a)+Int($b)); //Това взима обект с id=res и сменя атрибута

innerHTML с $a+$b, тоест сбора :)
return $r;
}

require("func.common.php");
$xajax -> processRequests(); //Връщаме резултатите

Готови сме. Функцията е готова, регистрираме $r, извършваме действията, които бяха целта ни - събираме и изкарваме резултата като променяме атрибутите на даден обект по id, именно това прави функцията addAssign(). Разбира се има още много такива като например addScript(), който изписва JS скрипт и т.н. Другите функции можете сами да си ги направите (изваждане, умножение, деление...). Е това е един малък пример, но все пак постигащ динамичност - целта на AJAX. Цялата документация по проекта ще откриете тук: http://www.xajaxproject.org , както и всички нужни функции и линк към проекта.

Намерих и един проблем: пакета е написан за UTF-8, но някои сайтове използват все още windows-1251 и се получава проблем при заявките. Реших проблема като заместих UTF8 със windows-1251 където намерих в xajax.inc.php но това пък не решава проблема с обработката на низове на кирилица. Ако някой е използвал пакета или има решение нека ми пише: skus@mail.bg

Това е за сега, ajax-а е нов и за мен и ще се радвам ако споделите и Вашите знания :)


Коментари (2)

SoundreameR на 10.01 2007 в 22:49ч.
На мен ми е много по-лесно просто да си направя едно .js с функциите на AJAX и разни .php-та в /ajax/ които да връщат съответната информация... Не мисля, че има нужда чак толкова да се усложняват нещата.. и без друго са малко задръстени :)
lyubo на 26.01 2007 в 15:26ч.
Ами да Soundreamr - прав си, но когато се налага да генерираш страниците на база на потребителските действия, състоянието на някаква база данни, и разбира се когато този потребител е user на сайта ти и трябва да му извадиш един куп неща като, съобщения, баланс по сметка любим цвят и прочее се налага, човек да се замисли дали всеки път да си пише js-четата за да направи възможно най-бърза страницата си.
Абе каквото и да става, едно нещо е ясно Отдавна някой трябваше да се замисли как да преодолее проблемите на HTTP протокола. AJAX е едно възможно решение, но като всичко обвързано с HTTP и JavaScript си има своите тъмни страни.
Ако най-добрия ти клиент по някаква безумна причина е решил да ползва links или Konkueror или кой да е друг браузър дето не поддържа XML заявки (или пък още по-лошо JS), какво правим тогава?

На автора на статията адмирации от мое име, за труда у за това че показва нови неща а не до болка познатите техники за това или онова.

Обаче, HTTP (и изобщо web технологиите) в момента suks! Многострадални протоколи и стандарти наследили пороците на своите прародители!

Регистрирайте се, за да добавите коментар

реклама

© Всички права запазени. 2006-2008. Created by: Site.bg
Препоръчваме: IT Новини | Кино и игри | Диплома.бг | Paparak.bg | Тунинг Портал | uchenik.com | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | AnimeS-bg.com | Фото Форум | Запознанства | Мрежа от приятели | IT Light | Spodeli.net | Фото-Култ | Dalavera.net | IDG.BG | Teenproblem.net | mucunki.com | Блог - Образование | Fresh-BG.com | Hanovete.com | Bulfleet.com | Mythlands.com | Ohoboho.com | News24 | Казанлък.Com | Atol.bg | Elmaz.com | MobileBulgaria.com | Setcom.bg