AJAX

Од Википедија, слободната енциклопедија
Прејди на: содржини, барај

AJAX, кратенка за Асинхрон ЈаваСкрипт и XML (Asynchronous JavaScript and XML). AJAX е развојна техника за создавање на интерактивни мрежни апликации. Намерата е да се дизајнираат веб страници кои се кориснички ориентирани, посебно при размена на помала количина на податоци од и кон серверот. На тој начин веб страницата нема да се вчитува секој пат кога корисникот ќе внесе податок или ќе побара да прочита некој податок од серверот. Тоа значи зголемување на степенот на интерактивност, брзина и полезност.

AJAX техниката се состои во комбинирање на :

  • XHTML (или HTML) и CSS, за означување и стилизирање на информациите.
  • DOM објектот се манипулира со Скрипт јазик на клиентската страна, најчесто со имплементации на ECMAScript како на пр. JavaScript и JScript, за динамички приказ и зголемена интеракција на корисникот со презентираната информација.
  • XML најчесто се користи како формат за трансфер на податоците помеѓу клиентот и серверот. Но може да се користи било кој друг формат, вклучувајќи и HTML, обичен текст, JSON па дури и EMBL. Овие датотеки може да бидат динамички креирани со помош на некоја скрипта на серверска страна.

За разлика од DHTML, LAMP и SPA, AJAX не е технологија само за себе, туку означува термин кој кажува дека се работи за користење на повеќе технологии заедно.

Историја[уреди]

Прв овој термин го употребил Џеси Џејмс Гарет (Jesse James Garrett) уште во февруари 2005 година[1]. Гарет често размислувал за ова[2], при што заклучил дека има потреба од нов термин кој ќе упатува на технологиите кои тој ги предлагал на клиентите[3].

Значи терминот "Ajax" бил скован 2005 година, но технологијата Ajax започнала десетина години порано со иницијативата на Microsoft за развој на Remote Scripting. Техниките за асинхроно симнување на содржината на постоечките веб страници без потреба од целосно вчитување датираат уште од времето кога се воведува типот на елемент IFRAME (1996 година во Internet Explorer 3) и типот на елемент LAYER (1997 година во Netscape 4, а напуштен во почетната развојна фаза на Mozilla). Овие елемент типови го содржат атрибутот src кој може да превземе било кој надворешен URL, па со вчитувањето на страница која содржи JavaScript може да се манипулира нејзината содржината, значи некои Ajax ефекти можело да се постигнат уште тогаш. Ова множество на технологии на страната на клиентот биле групирани под генеричкиот термин DHTML. Macromedia Flash може исто така, почнувајќи од верзија 4, да вчитува XML и CSV податотеки од опслужувачот без потреба од повторно вчитување на целата страница.

Техниката Remote Scripting на Microsoft (или MSRS, воведена во 1998) е елегантна замена за овие техники, на тој начин што заедно со податоците се повлекува и Java applet преку кој клиентската страна може да комуницира користејќи се со JavaScript. Оваа техника работеше и на Internet Explorer 4 и на Netscape Navigator 4. Подоцна Microsoft го промовира објектотXMLHttpRequest во Internet Explorer 5, стекнувајќи се со престиж користејќи ги овие техники во Outlook Web Access кој доаѓаше со Microsoft Exchange Server 2000 изданието.

Заедницата на веб професионалци, на почетокот остварувајќи соработка преку microsoft.public.scripting.remote newsgroup а подоцна преку блог агрегација, успеа да развие повеќе техники за remote scripting со цел да се овозможат конзистентни резултати во различни веб прелистувачи. 2002 година направена е модификација [4] на Microsoft Remote Scripting при што беше направена замена на Java аплетот со XMLHttpRequest објектот.

Откако XMLHttpRequest објекот е имплементран во поголемиот број на веб прелистувачи во употреба, алтернативните техники се користат се поретко. Но тие сѐ уште се во употреба таму каде што се бара компатибилност со постарите веб сајтови или пак во некои специфични апликации.

Исто така, World Wide Web конзорциумот направи неколку Препораки во насока на динамичка комуникација помеѓу опслужувачот и соодветниот агент на корисникот. Да напоменеме дека неколку од овие препоаки се добро подржани. Како например:

  • Element објектот дефиниран во HTML 4 за вгнездување на соодветни типови во документите, (замена за inline рамки во XHTML 1.1)
  • DOM објектот (Document Object Model) Level 3 Load и Save Спецификациите [1]

Добри и лоши страни[уреди]

Добри страни[уреди]

Bandwidth utilization[уреди]

Со локално генерирање на HTML кодот (од стана на веб прелистувачот) и само вчитување на потребните податоци со помош на JavaScript, Ajax веб страниците може да бидат вчитувани многу брзо доколку порциите на податоци кои се бараат од опслужувачот се со помал обем. Еден пример за оваа техника е примерот со некоја голема табела која се протега на повеќе страници. Со помош на Ajax, HTML кодот на страницата, како што се ознаките за контрола на изгледот на табелата TD, TR и слично може да бидат генерирани локално од страна на веб прелистувачот или пак доставени со првата страница. Ако корисникот ги бара следните страници од табелата,само суровите податоци ќе бидат вчитани, а подоцна соодветно претставени од страна на веб прелистувачот.

Интерактивност[уреди]

Ajax апликациите најчесто се извршуваат на клиентската страна, со манипулација на почетно вчитаната веб страница. Веб прелистувачот го користи DOM објектот на документот и методите за негова манипулација за менување на прикажаната содржината на документот. Ajax може да се користи за најразлични работи, како например ажурирање или бришење на записи во база на податоци, скалирање на веб страницата, извршување на едноставни упити, или менување на DOM објектот без потреба од испраќање на комплетните податоци во веб формата до веб опслужувачот и обратно. Значи само мала количина на сообраќај ќе се генерира помеѓу сервеот и клиентот, согласно со тоа ќе имаме релативно кратко време на одговор од страна на серверот. Ова ни овозможува да развиваме веб апликации кои се далеку поинтерактивни, при што корисничиот посредник комуницира побрзо и поефикасно со човекот за разлика од DHTML техниките.

Лоши страни[уреди]

Употреба на back копчето и bookmark-ови[уреди]

Веб апликациите кои користат Ajax најчесто не реагираат на очекуван начин во поглед на употребата на стандардното копчe back вградено во повеќето веб прелистувачи. При враќање на претходната состојба во веб прелистувачот со употеба на back копчето, кај динамички веб страници и кај статички веб страници не е исто, но корисниците најчесто очекуваат со употреба на back копчето од веб прелистувачот да ја добијат претходната состојба, но во Ajax апликациите тоа не е така.

Професионалците имаат имплементирано различни решенија за надминување на овој проблем. Некои од решенијата се состојат во користење на невидлив/и IFRAME за да се зачува историјата во поглед на употреата на back копчето од веб прелистувачот. На пример Google Maps, го извршува пребарувањето во невидлив IFRAME а потоа резултатот го прикажува во соодветен елемент на видливата веб страница. World Wide Web Конзорциумот (W3C) не го вклучува IFRAME елементот во препораките за XHTML 1.1, а го препорачува object елементот.

Друга работа е тоа што кај динамичките веб страници е тешко да се изврши bookmark на специфична ситуација на апликацијата. Постои решение за овој проблем, најчесто со користење на URL фрагмент идентификатор (дел од URL после '#' [5] [6]) за чување на состојбата, при што им се овозможува на корисниците да се вратат на некоја претходна состојба од апликацијата. Ова е возможно бидејќи повеќето веб прелистувачи допуштаат преку JavaScript да се врши динамичко ажурирање на URL фрагмент идентификаторот, на тој начин Ajax апликациите можат да знаат која состојба ја бара корисникот. Ова решение исто така ја подобрува употребата на копчето back во веб прелистувачот. се разбира ова не е комплетно и совршено решение.

Време на одговор[уреди]

Мрежната латенција — или интервалот помеѓу времето на поставување на барањето од страна на корисникот и времето на одговор на серверот, треба сериозно да се има предвид при развој на Ajax апликации. Без добар фидбек до корисникот [7], мали вчитувања на податоци и соодветна манипулација со XMLHttpRequest објектот, може да дојде предолго доцнење па и замрзнување на содржината на страницата во веб прелистувачот, нешто што корисникот не го очекува и разбира. Истотака, кога страницата се рендерира, потребно е окото да се рефокусира при промена на содржината. Ова може да доведе до натаможно зголемување на латенцијата. Со користење на визуелни ефекти (како например бројачи, лизгачи и сл.) се информира корисникот за активностите кои се одвиваат во позадина.

Општо земено, овој проблем сѐ уште не е задоволително решен до денес.

Search Engine Оптимизација[уреди]

Веб сајтовите кои се користат со Ajax а има потреба да бидат индексирани од страна на пребарувачките машини (search engines), треба внимателно да бидат дизајнирани за да обезбедат соодветни податоци достапни за јавноста, врски и сл, во формат кој пребарувачките машини може да го прочитаат, бидејќи пребарувачките машини не го извршуваат JavaScript кодот кој е потребен за да Ajax апликациите бидат функционални. Овој проблем не е само проблем кај Ajax.

Пристапност[уреди]

Со користење на Ajax технологиите во веб апликациите се отвораат многу можности за професионалците заинтересирани за WAI accessibility guidelines. Постојат повеќе развојни групи кои работат на проекти за владата на САД кои бараат стриктна примена на Section 508 Compliance стандарди. Доколку не постои согласност со овие стандарди може да дојде до прекин на договорот за соработка.

Заради ова, развивачите потребно е да обезбедат соодветни опции за корисниците на останатите платформи или веб прелистувачи кои немаат можност за користење на Ajax технологиите, бидејќи овие технологии се базираат на особености кои се карактеристични за графичките веб прелистувачи.

Види исто така[уреди]

Наводи[уреди]

  1. „Ajax: A New Approach to Web Applications“. Adaptive Path. 18 февруари 2005. http://www.adaptivepath.com/publications/essays/archives/000385.php. конс. 1 август 2006. 
  2. „New Web-based Technology Draws Applications, Investors“. Wall Street Journal. 3 ноември 2005. http://online.wsj.com/public/article/SB113098635587487074-3diFzslPm_iutdYLU2C5e4DinUA_20061103.html. конс. 14 јуни 2006. 
  3. . На повеќе семинари Гарет укажува на поентата дека Ajax не е акроним.
  4. „HTTPRequest-enabled RS“. microsoft.public.scripting.remote newsgroup. 18 јуни 2002. http://groups.google.ca/group/microsoft.public.scripting.remote/browse_thread/thread/99b7e6152b45b2e7/6b3689e2dc7401dc. конс. 1 август 2006. 
  5. „Uniform Resource Identifiers (URI): Generic Syntax“. The Internet Society. август 1998. http://www.ietf.org/rfc/rfc2396.txt. конс. 21 јули 2006. 
  6. „Uniform Resource Identifier (URI): Generic Syntax“. The Internet Society. јануари 2005. http://www.ietf.org/rfc/rfc3986.txt. конс. 21 јули 2006. 
  7. „Remote Scripting with AJAX, Part 2“. O'Reilly XML.com. 22 август 2005. http://www.xml.com/pub/a/2005/08/22/ajax.html. конс. 21 јули 2006. 

Надворешни врски[уреди]

Статии
Упатства