Ще започна от това що е и що не е AJAX…
- е “Asynchronous JavaScript and XML”;
- е технология;
- не е конкретен софтуер;
- не е панацеа;
Имплементациите на AJAX придобиха много широка популярност в последно време… Най-очеизваден и често даван пример за използване на AJAX са много от услугите на Google: предложенията изскачащи при попълването на полето за търсене в Google Suggest, целият Gmail… Основната цел на AJAX е да създаде по-динамично web приложение без да се налага презареждане на цялата страница. На мен например ми се наложи със списъка с блогове, където цялата първа страница, заедно с въведенията към публикациите достигаше до 600 kB. Това, което спестих е въведението, което въобще излезе от кода и вече се зарежда, само когато е нужно. Спестих трафик на потребителите и със спестеното посетителите, които са на трафик, могат да ме почерпят. :) Иначе има някои страшно мазни демонстрацийки: AJAX Шах, PHP+AJAX Chat Server, Upload Progress Meter, Странички с AJAX… Е, за пълната мазнотия се препоръчва CSS2 поддръжка.
Всяка имплементация на AJAX има своята клиентска и сървърна част. От потребителска страна е нужена основно JavaScript поддържка в браузъра (каквато има в повечето инсталирани такива). И това всъщност е основното изискване. Останалото е технологията от сървърна страна, която може да бъде всякаква: от чист HTML, през CGIки на Perl, Python… до PHP, ASP.NET и т.н.. Попаднах на два примера за съвсем простичка реализация на AJAX без всякакви допълнителни щуротии: тук и там. Разбира се, описаните подходи са малко несериозни, макар че на много места биха свършили страхотна работа. След огъня, колелото и картофите, цивилизацията достигна до XML. И тъй като напоследък всичко е XML, логично бе заявките от браузъра да се подават до сървърното приложение (каквото и да е то) през XML, давайки възможност от страната да стои каквото и да е обработващо XML. За целта в JavaScript се появи обектът XMLHttpRequest.
Аз обаче съм PHP, а не JavaScript, гуру (бах мааму и скромност!.. пошегувах се), а и всеки допир до последното ме кара да си мия ръцете с оцет. За щастие има и такива, които произнасят заклинанията си и на двата езика, като в резултат са се появили поне няколко свитъка (библиотеки, frameworks, все тая), чудесно систематизирани ето тук. В началото не повярвах, но после опитах… с AJAX Agent. За съжаление обаче, начинът, по който е написан ме изправи пред предопределени имена на променливите и почти никаква гъвкавост… а и нуждата все пак да поназнайвам JavaScript. Хубавото е, че позволява лесното реализиране на синхронни заявки. Те хората са си показали що може и що не в своите Cool Demos. Аз все пак се спрях на нещо друго: xajax. JavaScript-ът се кешира, работата е повече от елементарна, възможности за debugging, доста много примери и най-вече възможност за отделяне на презентацията от останалата логика, комуникация с повечето типове данни в PHP… Въобще… муцка ! :-P
AJAX е чудесно решение в кутийки за навигация например, за реализиране на потребителска кошница в е-магазин, за извършване на операции, за които не е необходимо потребителят да чака презареждането на цяла страница… AJAX обаче има един основен недостатък: същото съдържание не може да се възпроизведе само с помощта на URL (вярно е, че bgmaps.com демонстрират, как същият ефект може да се постигне и без AJAX, но това е друга тема…). От тук е и следствието, че AJAX трябва да се избягва за визуализация на основното съдържание на съответната страница…
… Опааа, 02:38 е ! Много се разприказвах…
P.S.: Casting spells in ASP.NET.
Leave a Reply