Ајаx (програмирање)

С Википедије, слободне енциклопедије

Ајакс (још АЈАX; скраћеница за Асинхрони ЈаваСцрипт и XМЛ)[1] је група међусобно повезаних техника за развој веба коришћених на клијентској страни за прављење синхроних и асинхроних веб апликација. Коришћењам Ајакса, веб апликације могу да шаљу и примају податке са сервера асинхроно (у позадини) без мењања тренутног приказа и понашања странице. Подаци могу бити преузети помоћу објекта XMLHttpRequest. Без обзира на име, коришћење XМЛ-а није обавезно (ЈСОН се често користи), а захтеви не морају бити асинхрони.[2]

Ајакс није једна, већ група технологија. ХТМЛ и ЦСС се могу користити за обележавање и стилизовање информација. ДОМ-у се приступа преко ЈаваСкрипта за динамички приказ и омогућавање интеракције корисника са информацијом. ЈаваСкрипт и XМЛХттпРеqуест објекат омогућују метод за асинхрону размену података између прегледача и сервера да би се избегло поновно учитавање целе странице.

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

Током 1990-их, већина веб страница базирано је на ХТМЛ страницама. Свака акција корисника захтевала је поновно учитавање са сервера (или учитавање нове странице). Искуство је показало да је овакав приступ неефикасан: целокупан садржај странице би нестао и поново се појавио. Сваки пут би због мале промене садржаја страница била поново учитана, сав садржај би опет био послат, иако су се само неке информације промениле. Ово је додатно оптерећивало сервере.

1996-те, ифраме таг је представљен од стране Интернет Еxплорер-а за асинхроно учитавање садржаја. 1998-ме, тим Мицрософт Оутлоок Wеб Аццесс имплементирао је прву компоненту XМЛХТТП са клијентског скрипта.

1999-те, Мајкрософт је искористио сопствену ифраме технологију да динамички ажурира вести и цене акција на берзи на почетној страници Интернет Експлорера и направио је XМЛХТТП АцтивеX контролу у Интернет Еxплорер 5,[3] која је касније прихваћена од стране Мозилла, Сафари, Опера и других прегледача као ЈаваСкрипт XМЛХттпРеqуест објекат. Мајкрософт је присвојио нативни XМЛХттпРеqуест модел од верзије 7 Интернет Еxплорер-а, мада је АцтивеX верзија и даље подржана. Значај позадинских ХТТП захтева према серверу и асинхроних веб технологија је остао непознат док није почео да се појављује у апликацијама као што су Оутлоок Wеб Аццесс (2000) и Оддпост (2002). Најзначајнија примена Ајакса везана је за Гмаил и Гоогле Мапе.

Термин Ајакс је осмислио Јессе Јамес Гарретт 18.02.2005. у чланку под именом "Ајаx: А Неw Аппроацх то Wеб Апплицатионс", заснованом на техникама коришћеним на Гуглу.

5-ог априла 2006-те, W3Ц (Wорлд Wиде Wеб Цонсортиум) је избацио спецификацију за XМЛХттпРеqуест објекат у покушају да направи званични веб стандард.

Технологије[уреди | уреди извор]

Термин Ајакс представља групу веб технологија које се користе за имплементацију веб апликација које комуницирају са сервером у позадини, без ремећења тренутног стања странице. У чланку у ком се први пут појављује термин Ајакс Јессе Јамес Гарретт је објаснио да су следеће технологије припојене:

Од тада се десио велики напредак у технологијама које се користе у склопу Ајакса и дефиниције самог термина. Размена података не захтева XМЛ, стога ни манипулација подацима не захтева XСЛТ. ЈаваСкрипт Објектна Нотација (ЈСОН) се често користи као алтернатива за размену података, иако се могу користити и други формати као преформатирани ХТМЛ или обичан текст.

[Асинхрони ХТМЛ и ХТТП] (АХАХ) подразумева коришћење XМЛХТТПРеqуест да прихвати фрагменте (X)ХТМЛ-а који се директно убацују у веб страну.

Недостаци[уреди | уреди извор]

  • Код старијих прегледача, странице креиране динамички корисћењем узастопних Ајакс захтева нису биле аутоматски регистроване у историји прегледача, тако да се кликом на дугме „назад“ прегледач није увек враћао у претходно стање, већ се враћао на последње посећену страну. Овакво понашање - навигација између страница уместо између стања стране - може бити пожељно, али не у свакој ситуацији. Окружење које користи Ајакс технике мења идентификатор фрагмента УРЛ-а (део УРЛ-а после „#“). ХТМЛ5 обезбеђује широк АПИ стандард за рад са историјом прегледача.
  • Динамичко ажурирање веб страница отежава чување страница и враћање на одређено стање апликације. Решења овог проблема постоје и многа од њих користе УРЛ идентификатор фрагмента. Решење које нуди ХТМЛ5 такође користи ово.
  • У зависности од природе Ајакс апликације, динамичко ажурирање странице може да омета интеракције са корисником, посебно ако се користи нестабилна Интернет конекција. На пример, промена поља за претрагу може узроковати упит серверу за резултате претраге, а да корисник не зна да резултати пристижу, и ако је интернет конекција спора, резултати могу да стигну у незгодно време, кад је корисник почео да ради нешто друго.
  • Због тога што већина Веб индексера не извршава ЈаваСкрипт код, јавно индексиране веб апликације треба да обезбеде алтернативне начине за приступ садржају који се иначе преузима преко Ајакса, и на тај начин омогућава претразивачу веба да га индексира.
  • Корисници чији прегледач не подржава ЈаваСкрипт или XMLHttpRequest, или је ова опција онемогућена, неће моћи на прави начин да користе странице које се ослањају на Ајакс. Уређаји попут паметних телефона можда немају подршку за захтеване технологије, али је ово све ређи проблем. Једини начин за решење овог проблема је примена метода које нису везане за ЈаваСкрипт. Ово се може остварити тако што се линкови и форме неће ослањати на Ајакс.
  • Слично, неке апликације које користе Ајакс су направљене тако да их програми за слепе не могу прочитати(нпр. ЈАWС).
  • Програми за слепе који могу да користе Ајакс и даље нису у могућности да читају динамички генерисан садржај.
  • Асинхрони стил програмирања може да доведе до сложеног кода који је тешко одржавати, дебагирати и тестирати.

Референце[уреди | уреди извор]

  1. ^ Јессе Јамес Гарретт (18. 2. 2005). „Ајаx: А Неw Аппроацх то Wеб Апплицатионс”. АдаптивеПатх.цом. Архивирано из оригинала 2. 7. 2008. г. Приступљено 19. 6. 2008. 
  2. ^ Уллман, Цхрис (2007). Бегиннинг Ајаx. wроx. ИСБН 978-0-470-10675-4. Архивирано из оригинала 5. 7. 2008. г. Приступљено 24. 6. 2008. 
  3. ^ „Дyнамиц ХТМЛ анд XМЛ: Тхе XМЛХттпРеqуест Објецт”. Аппле Инц. Архивирано из оригинала 12. 01. 2010. г. Приступљено 25. 6. 2008. 

Литература[уреди | уреди извор]