Оиди технологияи AJAX. Қисми 1

Печать

Дар лоиҳасозии муосири интерфейсҳо яке аз самтҳои ҷалбкунанда ин сохтани веб-барномаҳо мебошад. Ҳама корҳои наву тоза дар шабакаи Интернет ҷойгир карда шудаанд. Ба ин нигоҳ накарда сохтани веб-барномаҳо норасогиҳое дорад, ки дар сохтани desktop-барномаҳо мавҷуд нестанд. Барномаҳои оддӣ соҳиби имконияту суръати ҷавобгардоние ҳастанд, ки ба онҳо веб-барномаҳо дастнорасанд. Сабаби тез паҳн шудани шабакаи ҷаҳонии Интернет соддагии истифодаи он аст. Ин соддагӣ акнун фарқиятро байни веб-барнома ва барномаи дар компютер насбшуда ба вуҷуд овардааст. Фарқият дар муомилаи истифодабаранда бо веб-барнома ва муомилаи байни истифодабарандаву барномаи дар компютераш насбшуда аст. Лекин ин фарқият кам мегардад.

Масалан, сомонаи Google Suggest (http://www.google.com/webhp?complete=1&hl=en). Бинед, калимаву ҷумлаҳои пешкашшаванда бо мурури ворид намудани матн қариб бефосила азнав мешаванд. Мисоли дигар – Google Maps (http://maps.google.com/). Масштабро тағйир диҳед. Харитаро ҷунбонед. Ҳама чиз қариб ки фавран рух медиҳад, бе интизор шудани азнав шудани саҳифа. Google Suggest ва Google Maps ин ду мисоли лоиҳасозии веб-барномаҳо аст, ки дар ширкати Adaptive Path онро Ajax меноманд. Ин мафҳум ҳамчун ихтисор аз «JavaScript-и асинхронӣ + XML» пайдо гаштааст.

Ajax чист?

Ajax – технология нест. Аслан ин маҷмӯаи технологияҳое аст, ки ҳар якешон дар соҳаи худ бобароранду ба як самти нави пурқувва муттаҳид карда шудаанд. Ajax дар бар мегирад:

  • Намоиши стандартишуда тавассути XHTML ва CSS;
  • Инъикоси динамикӣ ва ҳамкорӣ бо ёрии Document Object Model;
  • Мубодила ва идораи маълумот тавассути XML, XSLT ва ё JSON;
  • Гирифтани асинхронии маълумот бо истифодаи XMLHttpRequest;
  • ва Javascript, ки ҳамаи инро мепайвандад.

Модели классикии веб-барнома чунин аст. Аксарияти амалҳои истифодабаранда HTTP-дархостро баргашта ба сервер мефиристанд. Сервер коркарди заруриро иҷро намуда – маълумотро мегирад, ададҳоро ҳисобу китоб мекунад, бо системҳои гуногун муомила мекунад ва баъд HTML-саҳифаро ба мизоҷ бозмегардонад. Ин усул аз истифодаи пешина (ибтидоии) WWW ҳамчун муҳити гиперматнӣ омадааст. Лекин он чизҳое, ки WWW-ро барои гиперматнҳо мутобиқ месозанд, на ҳама вақт барои барномаҳои амалӣ хубанд. Дар усули классикӣ мазмуни техникии бисёре ҳаст, лекин дар он ҳамкории хуб бо истифодабаранда ба даст оварда намешавад. Он мурури вақте, ки сервер бо коркарди дархости қабулшуда овора аст, истифодабаранда интизор аст. Ва ҳар қадами минбаъда истифодабаранда боз ва боз интизор мешавад.


Сохтори классикии веб-барнома
Манбаъ: http://www.computerra.ru/hitech/39239/

Агар саҳифа дар компютери истифодабаранда алакай кушода шуда бошад, пас барои чӣ муомила бо истифодабаранда ҳар дафъае, ки ягон чи аз сервер зарур мешавад, бояд боз дошта шавад? Дар ҳақиқат, барои чӣ истифодабаранда умуман бояд бинад, ки барнома бо сервер пайваст шуда истодааст?

Фарқияти Ajax дар чист?

Ajax-барнома мубодилаи тарзи «оғоз-итмом-оғоз-итмом-оғоз-итмом»-ро нест мекунад. Ин бо ворид намудани механизми Ajax ҳамчун қабати миёна байни истифодабаранда ва сервер имконпазир мегардад. Чунин намуданаш мумкин аст, ки ҳамроҳ намудани қабати нав дар барнома суръати ҷавобгардонии онро суст мекунад, дар асл одатан баръакс аст.

Пеш аз кушода шудани саҳифа дар ибтидои кори истифодабаранда браузер "муҳаррики" (engine) Ajax-ро, ки дар Javascript навишта шудааст ва одатан дар фрейми ниҳоӣ пинҳон аст, ба компютери истифодабаранда мегирад. Ин муҳаррик барои ташкили интерфейси корбар ва муомила бо сервер аз номи корбар ҷавобгар аст. Муҳаррики Ajax имконият медиҳад, ки муомила бо корбар асинхронӣ, яъне новобаста аз муомила бо сервер, иҷро гардад. Ҳамин тарз, корбарро зарур нест, ки то омада расидани ҷавоби сервер экрани холӣ ва соати қумиро муоина намуда истад.


Сохтори web-барномае, ки технологияи AJAX-ро истифода мебарад
Манбаъ: http://www.computerra.ru/hitech/39239/

Ҳар як амали истифодабаранда, ки одатан HTTP-дархостро ҳосил менамуд, акнун шакли даъвати функсияи Javascript-и муҳаррики Ajax-ро мегирад. Ҳар як ҷавоб ба амали истифодабаранда, ки муроҷиат ба серверро талаб намекунад, ба мисоли санҷиши соддаи маълумот, таҳрири додашудаҳо дар хотира, қисман вазифаҳои сайр дар саҳифаҳо аз тарафи муҳаррик мустақилона иҷро карда мешаванд. Агар ки барои ҷавоб бозгардонидан маълумот аз сервер зарур шавад, масалан гирифтани коди иловагӣ барои ягон қисми интерфейс, ирсоли маълумот барои коркард, ё гирифтани маълумоти нав, он гоҳ муҳаррик дархостҳои заруриро асинхронӣ иҷро мекунад, одатан бо истифодаи XML, муомилаи корбарро бо барнома канда накарда.

Кӣ Ajax-ро истифода мебарад?

Ширкати Google барои рушди Ajax сармояҳои калон сарф мекунад. Ҳама молҳои охирон вақтҳо эълоншуда – Orkut, Gmail, Google Groups, Google Suggest ва Google Maps – барномаҳои Ajax мебошанд. Бисёр имкониятҳои хизматрасонии Flickr низ ба Ajax такя мекунанд. Механизми ҷустуҷӯии A9.com аз Amazon низ технологияи монандро истифода мекунад.

Ин лоиҳаҳо нишон медиҳанд, ки Ajax натанҳо дар назария, балки дар амалия низ барои барномаҳои воқеӣ кор мекунад. Барномаҳои Ajax метавонанд масштаби дилхоҳ дошта бошанд, аз функсияи тоқаи Google Suggest то мураккабии Google Maps.

Дар ширкати Adaptive Path бо Ajax кор карда, фаҳмиданд, ки ибтидои манфиатҳои муомила ва суръати ҷавобгардонии веб-барномаҳоро дарёфтаанд. Акнун Ajax самти муҳими инкишофи веб-барномаҳо аст ва муҳимияти он меафзояд. Бо назардошти он ки миқдори зиёди барномасозон бо технологияҳои таркибии Ajax шинос ҳастанд, миқдори боз ҳам зиёди ширкатҳо ташкилотҳо аз намунаҳои Google ибрат мегиранд ва дар Ajax кӯшиш мекунанд.

Масъалаи асосии сохтани барномаҳои Ajax техникӣ нест. Чунки технологияҳои асоси Ajax-ро ташкилкунанда аз санҷиши вақт гузаштаанд, устуворанд ва хуб омӯхта шудаанд. Баръакс, масъалаи барномасозон ин аст, ки тасаввуротҳои маҳдуди худро оиди веб-барномаҳо фаромӯш кунанд ва оиди имкониятҳои васеътару калонтар фикр кунанд.

Ихтирои Ajax на ба Google, на ба adaptive Path тааллуқ надорад. Молҳои Google танҳо мисолҳои беҳтарини татбиқи Ajax ҳастанд. Adaptive Path дар сохтани Ajax-барномаҳои Google иштирок намекард, лекин чунин корҳоро барои дигар мизоҷони худ иҷро менамуд.

Ajax – ин нуқтаи назар ва ё муносибат аст, яъне маҷмӯи тасаввуротҳо оиди сохтори веб-барномаи технологияҳои муайянро истифодабаранда аст. На ин нуқтаи назар ва на худи номи Ajax моликияти Apadtive Path нестанд. Яке аз ҷузъҳои таркибии Ajax ин XMLHttpRequest аст. XMLHttpRequest – ин компоненти техникиест, ки доду гирифти асинхрониро бо сервер имконпазир мегардонад. Ajax ин нуқтаи назари умумие, ки натанҳо бар XMLHttpRequest асос ёфтааст, балки CSS, DOM ва дигар технологияҳоро низ истифода мебарад.

Ба ширкати Adaptive Path номи аз «JavaScript-и асинхронӣ + CSS + DOM + XMLHttpRequest» кӯтоҳтаре лозим буд, барои ҳамин номи Ajax ихтироъ шуд.

Гарчанде ки тарзҳои доду гирифти асинхронӣ бо сервер чандин солҳо мавҷуданд, навигарии Ajax дар истифодаи аҷиби ин тарзҳо барои тағйирдиҳии фундаменталии усули муомила дар веб-барномаҳои воқеӣ аст. Ajax акнун ҳоло мустаҳкам мешавад, чунки барои инкишофи ин технологияҳо ва тасаввурот оиди истифодаи беҳтарини онҳо вақт лозим буд. Ajax ин ҳам асоси технологӣ ва ҳам услуби лоиҳакашӣ аст. Ajax ин маҷмӯи технологияҳои бо ҳам ба тарзи муайян истифодашаванда аст.

Барои чӣ гуна барномаҳо Ajax бисёртар мувофиқ аст? Аз сабаби нисбатан нав будани ин услуб тасаввуротҳои мо нисбати он, ки он дар куҷо беҳтар истифода мешавад, ҳанӯз дар савияи ибтидоии инкишоф ҳастанд. Дар ҳолатҳои муайян модели ананавии веб-барнома низ ҳамчун ҳалли беҳтарин мувофиқ меояд. Шуданаш мумкин аст, ки дар баъзе ҳолатҳо ҳалли беҳтарин Ajax мегардад, дар ҳолатҳои муайян Flash низ ҳалли беҳтарин буда метавонад.

Оиди Ajax бисёр саволҳое мавҷуданд, ки ба онҳо ҷавоби аниқ вуҷуд нест, масалан:

  • Ajax соҳиби кадом маҳдудиятҳои дастрасӣ ва мувофиқият бо браузерҳо аст?
  • Тугмаи "Бозгашт" дар Ajax кор мекунад?
  • Существуют ли мнения о безопасности разработки в Ajax?
  • Дар Ajax масъалаи бехатарӣ дар кадом ҳолат аст?
  • Ajax-барномаҳо ҳангоми дастнорас будани Javascript чӣ гунн рафтор мекунанд?

Бисёр барномасозон дар атрофи ин масъалаҳо кор карда истодаанд. Барои аён кардани ҳамаи норасогиҳои Ajax cолҳои тадқиқотҳо ва меҳнат зарур ҳастанд. Масалан, Google на дар ҳама барномаҳояш XML-ро истифода мекунад. Истифодаи XML ва ё XSLT дар барномаҳои Ajax ҳатмӣ аст? Не. XML ин яке аз тарзҳои инкишофётатарини хориҷу вориди маълумот дар қисми мизоҷии Ajax аст. Айнан ҳамин натиҷаро тавассути технологияҳои сохторбандии маълумот ба монанди JSON (JavaScript Object Notation) ба даст овардан мумкин аст.

Саволи "Оё офаридани барномаи Ajax нисбати веб-барномаи анъанавӣ осонтар аст?" чунин посух мегирад: "Наҳама вақт". Ajax-барнома ногузир ба иҷро шудани коди мураккаби Javascript дар тарафи мизоҷ меорад. Бунёди чунин коди мураккаб, ки аз хатогиҳо озод бошаду самаранок кор кунад, осон нест. Барои ин сохторҳо ва олотҳои беҳтарин дар барноманависӣ зарур мешаванд.

Гарчанде ки Ajax барои лоиҳасозони интерфейсҳо нисбати веб-барномаи анъанавӣ қулайтар аст, чӣ қадаре, ки иқтидори зиёдтар дар дасти мо бошад, ҳамон қадар бо он эҳтиёткорона рафтор намудан зарур аст. Дар истифодаи Ajax бояд эҳтиёт шуд, то ки истифодаи веб-барнома қулай гардад, на ин ки бадтар шавад. Ин мавод дар асоси мақолаҳо ва интервюи Джесси Джеймс Гарретт – раиси Adaptive Path оид ба нақшагирии муомила бо истифодабаранда ва асосгузири Adaptive Path навишта шудааст. Вай инчунин муаллифи китоби «The Elements of User Experience» ва тадқиқоти «The Nine Pillars of Successful Web Teams и Six Design Lessons From the Apple Store» мебошад.

Комментарии   

 
0 #1 памир 03.03.2015 17:45
бехтарин маълумотхо ташаккур
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Произведение «OFTOB.COM» публикуется на условиях лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Непортированная.