అజాక్స్ (ప్రోగ్రామింగ్)

వికీపీడియా నుండి
ఇక్కడికి గెంతు: మార్గసూచీ, వెతుకు

అజాక్స్ (Ajax)(ఎసింక్రోనస్ జావాస్క్రిప్ట్ మరియుXML కు సంక్షిప్త రూపము) అనేది వెబ్ అప్లికేషనులను తయారుచేయటానికి క్లైంట్-సైడ్ ఉపయోగించే అన్యోన్యసంబంధం కలిగి ఉన్న వెబ్ డెవలప్మెంట్(వెబ్ పీజీ రూపకల్పన) సాంకేతికతల యొక్క సమూహము. అజాక్స్ తో, వెబ్ అప్లికేషనులు ప్రస్తుత పేజీ యొక్క ప్రవర్తన మరియు ప్రదర్శనతో జోక్యం చేసుకోకుండా బ్యాక్ గ్రౌండ్ లో సర్వర్ నుండి దత్తాంశమును ఏకకాలంలో కాకుండా రాబడతాయి. అజాక్స్ సాంకేతికతల వినియాగం వెబ్ పేజీల పైన భాషించే లేదా చైతన్యవంతమైన అంతర్ముఖాల పెరుగుదలకు దారితీసింది[1][2]. సాధారణంగా దత్తాంశము XMLHttpRequest ఆబ్జెక్ట్ ను ఉపయోగించి తిరిగి రాబట్టబడుతుంది. పేరులో ఉన్నప్పటికీ, జావాస్క్రిప్ట్ మరియు XML ల అవసరం నిజానికి అంతగాలేదు, మరియు ఆ రిక్వెస్ట్ లు కూడా ఏక కాలంలో స్పందించనివి అవాల్సిన అవసరం కూడా లేదు.[3]

DHTML మరియు LAMP ల మాదిరి, అజాక్స్ దానికదే ఒక సాంకేతికత కాదు, కానీ సాంకేతికతల సమూహము. సమాచారాన్ని వినూత్న రీతిలో ఉంచటానికి మరియు మార్కు(సూచీ) చేయటానికి, అజాక్స్ HTML మరియు CSS ల సంయోగాన్ని, ఇవ్వబడిన సమాచారాన్ని చైతన్యవంతంగా ప్రదర్శించటానికి మరియు దానితో సంకర్షణకు జావాస్క్రిప్ట్ తో యాక్సెస్ చేయబడిన DOM ను ఉపయోగించుకుంటుంది, పేజీ రీలోడ్ లను తప్పించుకుంటూ, బ్రౌజర్ మరియు సర్వర్ ల మధ్య దత్తాంశమును ఇచ్చిపుచ్చుకోవటానికి ఇది ఒక పధ్ధతి.

చరిత్ర[మార్చు]

1990 లలో, వేగవంతమైన మరియు ప్రతిస్పందించే వాడుకదారు అనుభవాన్ని అందించటానికి వెబ్ బ్రౌజర్లలో మరియు వెబ్ సైట్ లలో ఆ సౌలభ్యం లేదు. అడగబడిన సమాచారం అంతటినీ అందులోకి ఎక్కించి అప్పుడు వెబ్ సర్వర్ కు పంపించవలసిరావటంవలన, ఆన్లైన్ లో ఫారం పంపటం ఎప్పటికీ తెమలని పని. ఆ ఫారంలో ఉండే దత్తాంశం పరీక్షించబడి అందులో ఏమైనా సమస్యలు ఉంటే, అదే ఫారం తిరిగి వాడుకదారుకు ఇవ్వబడుతుంది. సమాచార ప్రవాహం మరియు ఫలిత అనుభవం, HTTP యొక్క అస్థిర గుణాన్ని ప్రతిబింబిస్తూ అస్థిరం మరియు అసంబద్ధంగా ఉంటుంది.

1995 లో జావా లాంగ్వేజ్ యొక్క మొదటి వర్షన్ లో జావా ఆప్లెట్లు ప్రవేశపెట్టబడినప్పుడు కంటెంట్(విషయం) యొక్క అసమకాలీన లోడింగ్ నిజంగా ఆచరణాత్మకం అవుతుంది. ఇవి ఒక వెబ్ పేజీ లోడ్ అయినతర్వాత, కంపైల్డ్(కూర్చబడిన) క్లైంట్-సైడ్ కోడ్ వెబ్ సర్వర్ నుండి దత్తాంశమును ఏకకాలంలో కాకుండా లోడ్ చేయటానికి అనుమతిస్తాయి.[4] 1996 లో, ఇంటర్నెట్ ఎక్స్ప్లోరర్ HTML లో IFrame అంశాన్ని ప్రవేశపెట్టింది, ఇది కూడా దీనిని సాధించటానికి సహకరిస్తుంది.[5] 1999 లో, మైక్రోసాఫ్ట్ ఇంటర్నెట్ ఎక్స్ప్లోరర్ 5 లో XMLHTTP ActiveX కంట్రోల్ ను తయారుచేసింది, ఇది ప్రస్తుతం మొజిల్లా, సఫారి మరియు ఇతర బ్రౌజర్ల చేత సహజమైన XMLHttpరిక్వెస్ట్ ఆబ్జెక్ట్ గా సమర్ధించబడుతోంది.[5][6] గూగుల్ జిమెయిల్(Gmail) (2004) మరియు గూగుల్ మాప్స్ (2005) లలో అజాక్స్ ను పూర్తిస్థాయిలో వినియోగించే వరకు సర్వర్ కు బ్యాక్ గ్రౌండ్ HTTP రిక్వెస్ట్ల ప్రయోజనం మరియు ఏకకాలంలో సంభవించని వెబ్ సాంకేతికతలు బొత్తిగా స్పష్టత లేకుండా ఉండిపోయాయి.[7]

"అజాక్స్" అనే పదము 2005 లో కల్పించబడింది.[8] జేస్సే జేమ్స్ గార్రెట్ట్ తను క్లైంట్ కు ప్రతిపాదిస్తున్న సాంకేతికతల సమూహాన్ని వర్ణించటానికి ఒక సంక్షిప్త పదం యొక్క అవసరాన్ని గుర్తించినప్పుడు,[9] అతను స్నానం చేస్తున్న సమయంలో "అజాక్స్" అనే పదం ఆలోచనలోకి వచ్చింది.[8]

ఏప్రిల్ 5, 2006 న వరల్డ్ వైడ్ వెబ్ కన్సార్టియం (W3C) ఒక అధికారిక వెబ్ ప్రామాణంను తయారుచేసే ప్రయత్నంలో ఆ ఆబ్జెక్ట్ కొరకు మొదటి ముసాయిదా వివరణమును విడుదలచేసింది.[7]

సాంకేతిక విధానాలు[మార్చు]

అజాక్స్ అనే పదము, పేజీ యొక్క ప్రస్తుత స్థితితో జోక్యం చేసుకోకుండా, బ్యాక్ గ్రౌండ్ లో సర్వర్ తో భాషించే ఒక వెబ్ అప్లికేషనును ఆచరణలోపెట్టటానికి ఉపయోగించగలిగిన వెబ్ సాంకేతికతల యొక్క విస్తారమైన వర్గాన్ని వర్ణించటానికి ఉద్భవించింది. అజాక్స్ అనే పదాన్ని ప్రయోగించిన వ్యాసంలో,[8] జెస్సే జేమ్స్ గార్రెట్ట్ ఈ క్రింది సాంకేతికతలు అవసరమని వివరించాడు:

  • ప్రెజెంటేషన్(అగుపడటం) కొరకు HTML లేదా XHTML మరియు CSS
  • దత్తాంశం యొక్క పరిణామశీలమైన ప్రదర్శన మరియు దానితో సంకర్షణ కొరకు డాక్యుమెంట్ ఆబ్జెక్ట్ మోడల్
  • దత్తాంశం యొక్క పరివర్తన, మరియు నిర్వహణ మరియు ప్రదర్శన కొరకు XML మరియు XSLT వరుసక్రమంలో.
  • ఏకకాలంలో సంభవించని సందేశం కొరకు XMLHttpRequest ఆబ్జెక్ట్
  • ఈ సాంకేతికతలను ఒక దగ్గరికి తేవటానికి జావాస్క్రిప్ట్

అప్పటినుండి, ఏదిఏమైనప్పటికీ, ఒక అజాక్స్ అప్లికేషను లో ఉపయోగించే సాంకేతికతలలోను మరియు అజాక్స్ అనే పదం యొక్క నిర్వచనంలోను అనేక మార్పులు చోటుచేసుకున్నాయి. ప్రత్యేకించి, ఈ క్రింది విషయాలు గమనించబడ్డాయి:

  • జావాస్క్రిప్ట్ ఒక అజాక్స్ అప్లికేషనును ఆచరణలో పెట్టటానికి ఉపయోగించే ఏకైక క్లైంట్-సైడ్ స్క్రిప్టింగ్ లాంగ్వేజ్ కాదు. VBScript వంటి ఇతర లాంగ్వేజ్ లు కూడా కావలసిన కార్యదక్షతను కలిగిఉన్నాయి.[3] ఏది ఏమైనప్పటికీ అనేక ఆధునిక వెబ్ బ్రౌజర్లలో దాని చేరిక మరియు వాటితో దాని పొందిక మూలంగా అజాక్స్ ప్రోగ్రామింగ్ కొరకు జావాస్క్రిప్ట్ అత్యంత ప్రసిద్ధమైన లాంగ్వేజ్.
  • దత్తాంశ పరివర్తనకు XML అవసరం లేకపోయినందువలన దత్తాంశ నిర్వహణకు XSLT అవసరంలేదు. జావాస్క్రిప్ట్ ఆబ్జెక్ట్ నొటేషన్ (JSON) దత్తాంశ పరివర్తన కొరకు ఒక ప్రత్యామ్నాయ అమరికగా తరచుగా వినియోగించబడుతుంది,[10] అయినప్పటికీ ముందుగానే క్రమపరచిన HTML లేదా సాదా వాచకం వంటి ఇతర అమరికలను కూడా ఉపయోగించుకోవచ్చు.[11]

ప్రామాణిక అజాక్స్ లో క్లైంట్ పైన తదర్ధ జావాస్క్రిప్ట్ ను వ్రాయటం కలిగిఉంటుంది. ఒక సరళమైన ప్రత్యామ్నాయం మోటైనది అయితే అది ప్రత్యేకించి ASP.Net యొక్క అప్డేట్ పానల్ వంటి పేజీని అప్డేట్ చేయగలిగే ప్రామాణిక(స్టాండర్డ్) జావాస్క్రిప్ట్ లైబ్రరీలను ఉపయోగించాలి. Echo2 మరియు ZK వంటి ఉపకరణాలు కేవలం స్టాండర్డ్ జావాస్క్రిప్ట్ లైబ్రరీలను ఉపయోగిస్తూ, సర్వర్ నుండి ఒక పేజీ యొక్క ఫైన్ గ్రెయిండ్ నియంత్రణను ప్రేరేపిస్తాయి.

కారణ వివరణం[మార్చు]

  • అనేక దృష్టాంతాలలో, వెబ్ సైట్ పైన సంబంధంఉన్న పేజీలు వాటి మధ్య ఉమ్మడిగా ఉన్న ఎక్కువ సారాంశాన్ని కలిగి ఉంటాయి. సాంప్రదాయ పద్ధతులను ఉపయోగించి, ప్రతి రిక్వెస్ట్ లో ఆ విషయం(కంటెంట్) రీలోడ్ అవవచ్చు. అయినప్పటికీ, అజాక్స్ ను ఉపయోగించి, అప్డేట్ అవాల్సిన అవసరం ఉన్న విషయాన్ని మాత్రం ఒక వెబ్ అప్లికేషను రిక్వెస్ట్ చేయగలదు, దానివలన బ్యాండ్ విడ్త్ వినియోగము మరియు లోడ్ అయ్యే సమయం గణనీయంగా తగ్గిపోతాయి.[12]
  • ఏకకాలంలో స్పందించని రిక్వెస్ట్ ల వినియోగం క్లైంట్ యొక్క వెబ్ బ్రౌజర్ UI ను మరింత సంకర్షించేదిగా మరియు ప్రవేశాంశాలకు వెంటనే స్పందించేదిగా ఉండేటట్లు చేస్తుంది, మరియు పేజీల విభాగాలు కూడా స్వంతంత్రంగా రీలోడ్ అవగలవు. సర్వర్ సైడ్ లో అప్లికేషను మార్పు చెందనప్పటికీ, వాడుకదార్లు ఆ అప్లికేషను ను వేగవంతమైంది లేదా ఎక్కువ ప్రతిస్పందించేదిగా గ్రహిస్తారు.[13]
  • స్క్రిప్ట్స్ మరియు స్టైల్ షీట్స్ కేవలం ఒక్కసారి మాత్రమే రిక్వెస్ట్(అభ్యర్ధన) చేయవలసిరావటం వలన, అజాక్స్ వినియోగం సర్వర్ తో అనుసంధానాలను తగ్గించవచ్చు.[13]
  • ఒక వెబ్ సైట్ అంతటా స్థితి నడిపించబడవచ్చు. ముఖ్య విషయాలు కలిగిన పీజీ రీలోడ్ అవాల్సిన అవసరం లేకపోవటంతో జావాస్క్రిప్ట్ చలరాశులు(వేరియబుల్స్) అలానే ఉండవచ్చు.

లోపాలు[మార్చు]

  • స్టాటిక్(నిశ్చల) పీజీల కన్నా అజాక్స్ అంతర్ముఖాలను అభివృద్ధి చేయటం చాల కష్టం.
  • వరుస క్రమంలో ఉండే అజాక్స్ రిక్వెస్ట్ లను ఉపయోగించి చైతన్యవంతంగా రూపొందించిన పేజీలు బ్రౌజర్ యొక్క హిస్టరీ ఇంజనుతో తమకుతామే స్వయంచాలకంగా నమోదు(రిజిస్టర్) చేసుకోవు, అందువలన బ్రౌజర్ యొక్క "బ్యాక్" బటన్ నొక్కటం ద్వారా వాడుకదారు అజాక్స్-అనుమతించిన పేజీ యొక్క పూర్వపు స్థితికి తిరిగి వెళ్ళలేకపోవచ్చు, కానీ దానికిబదులుగా దాని ముందు చూసిన ఆఖరి పూర్తి పేజీని వారు చూడవచ్చు. బ్రౌజర్ చరిత్రలో మార్పులను ప్రేరేపించటానికి మరియు అజాక్స్ రన్ అవుతున్నప్పుడు URL (ఒక # ను అనుసరించి) యొక్క మూలాధార భాగాన్ని మార్చటానికి మరియు మార్పుల కొరకు దానిని పర్యవేక్షించటానికి అదృశ్య IFrames యొక్క వినియోగాన్ని వర్క్ అరౌన్డ్స్ కలిగిఉంటాయి.[13]
  • డైనమిక్ వెబ్ పేజి అప్డేట్లు వాడుకదారుకు అప్లికేషను యొక్క ఒక ప్రత్యేక స్థితిని బుక్ మార్క్(గుర్తుగా పెట్టుకోవటం) చేసుకోవటం కూడా దుర్లభం చేస్తాయి. ఈ సమస్యకు పరిష్కారాలు ఉన్నాయి, వాటిలో చాలవరకు ఇవ్వబడిన స్థితిలో ఉన్న ఒక అప్లికేషను కు తిరిగి రావటానికి వాడుకదారులను అనుమతించటానికి, మరియు దానిని పర్యవేక్షించటానికి, URL ఫ్రాగ్మెంట్ ఐడెన్టిఫయర్ ('#' తర్వాత వచ్చే URL యొక్క ఒక భాగం) ని ఉపయోగిస్తాయి.[13]
  • చాల వెబ్ క్రాలర్లు జావాస్క్రిప్ట్ కోడ్ ను ఎగ్జిక్యూట్ చేయకపోవటంతో,[14] అన్వేషణ ఇంజనులు దానిని గుర్తించటానికి వీలుకల్పిస్తూ, సాధారణంగా అజాక్స్ తో తిరిగిపొందగలిగే విషయం(కంటెంట్)లోనికి ప్రవేశించటానికి బహిరంగముగా సూచీలుగా ఉండే వెబ్ అప్లికేషనులు ఇతర మార్గాలను అందించాలి.
  • జావాస్క్రిప్ట్ లేదా XMLHttpరిక్వెస్ట్ ను సమర్ధించని బ్రౌజర్ కలిగిన ఎ వాడుకదారు అయినా, లేదా సూక్షంగా ఈ కార్యదక్షత లోపించినది ఏదైనా, అజాక్స్ పై ఆధారపడిన పేజీలను సరిగా ఉపయోగించుకోలేదు. అదేవిధంగా, మొబైల్ ఫోన్లు, PDAలు, మరియు స్క్రీన్ రీడర్ల వంటి ఉపకరణాలకు అవసరమైన సాంకేతికత కొరకు ఆసరా ఉండకపోవచ్చు. అజాక్స్ ను ఉపయోగించుకోగలిగే స్క్రీన్ రీడర్లు చైతన్యవంతంగా ఉద్భవించిన విషయాన్ని ఇప్పటికీ సరిగా చదవలేవు.[15] వాడుకదారు కార్యదక్షతను నడిపించేటట్లు చేయటానికి జావాస్క్రిప్ట్ కాని విధానాలకు మరలటం ఒక్కటే మార్గం. అనుసంధానాలు మరియు నిర్మాణాలు సరిగా పరిష్కరించబడ్డాయని రూడీ చేసుకొని మరియు ఇది పూర్తిగా అజాక్స్ పైన మాత్రమే ఆధారపడకపోతే దీనిని సాధించవచ్చు. జావాస్క్రిప్ట్ లో, అప్పుడు ఫారం అప్పగింత "రిటర్న్ ఫాల్స్" తో నిలిచిపోతుంది.[16]
  • ఇదే ఆరంభ యోచన కొన్నిఅజాక్స్ పద్ధతులను డొమైన్స్(పరిధి) అంతటా ఉపయోగించటాన్ని అరికడుతుంది,[7] అయినప్పటికీ W3C ఈ కార్యదక్షతను ప్రేరేపించే XMLHttpరిక్వెస్ట్ యొక్క ముసాయిదాను కలిగిఉంది.[17]
  • ఇతర వెబ్ సాంకేతికతల లాగానే, డెవెలపర్లు తప్పనిసరిగా ప్రస్తావించవలసిన దాని సొంత భేద్యాలను అజాక్స్ కలిగిఉంది. ఇతర వెబ్ సాంకేతికతలతో పరిచయం ఉన్న డెవలపర్లు సురక్షితమైన అజాక్స్ అప్లికేషనులను వ్రాయటానికి కొత్త టెస్టింగ్ మరియు కోడింగ్ విధానాలను నేర్చుకోవలసిరావచ్చు.[18][19]
  • అజాక్స్ వలన శక్తివంతమైన అంతర్ముఖాలు, వెబ్ సర్వర్లకు మరియు వాటి బ్యాక్-ఎండ్ (డేటాబేస్(దత్తాంశనిధి), లేదా వేరొకటి) లకు వాడుకదారు-పంపే రిక్వెస్ట్(అభ్యర్ధన)ల సంఖ్యను గణనీయంగా పెంచుతాయి. ఇది సుదీర్ఘ ప్రతిక్రియ సమయానికి మరియు/లేదా అదనపు హార్డువేర్ అవసరాలకు దారితీస్తుంది.

సూచనలు[మార్చు]

  1. Moore, John (2008-07-07). "What is Ajax?". RIAspot.com. Retrieved 2008-07-07. 
  2. Hope, Paco; Walther, Ben (2008), Web Security Testing Cookbook, Sebastopol, CA: O'Reilly Media, Inc., ISBN 978-0-596-51483-9 
  3. 3.0 3.1 Ullman, Chris (March 2007). Beginning Ajax. wrox. ISBN 978-0-470-10675-4. Retrieved 2008-06-24. 
  4. "Code Samples and Apps: Applets". Sun Microsystems, Inc. Retrieved 2009-01-02. 
  5. 5.0 5.1 Hinchcliffe, Dion (June 2006). Real-World Ajax: Secrets of the Masters. SYS-CON Media. ISBN 9780977762200. 
  6. "Dynamic HTML and XML: The XMLHttpRequest Object". Apple Inc. Retrieved 2008-06-25. 
  7. 7.0 7.1 7.2 "A Brief History of Ajax". Aaron Swartz. 2005-12-22. Retrieved 2009-08-04. 
  8. 8.0 8.1 8.2 Jesse James Garrett (2005-02-18). "Ajax: A New Approach to Web Applications". AdaptivePath.com. Retrieved 2008-06-19. 
  9. "New Web-based Technology Draws Applications, Investors". Wall Street Journal. 2005-11-03. Retrieved 2006-06-14. 
  10. "JSON - JavaScript Object Notation". Apache.org. Retrieved 2008-07-04. 
  11. "Speed Up Your Ajax-based Apps with JSON". DevX.com. Retrieved 2008-07-04. 
  12. Merrill, Christopher (2006-01-15). "Performance Impacts of Ajax Development". Web Performance, Inc. Retrieved 2008-06-16. 
  13. 13.0 13.1 13.2 13.3 "Why use Ajax?". InterAKT. 2005-11-10. Retrieved 2008-06-26. 
  14. Prokoph, Andreas (2007-05-08). "Help Web crawlers efficiently crawl your portal sites and Web sites". IBM. Retrieved 2009-04-22. 
  15. Edwards, James (2006-05-05). "Ajax and Screenreaders: When Can it Work?". sitepoint.com. Retrieved 2008-06-27. 
  16. Quinsey, Peter. "User-Proofing Ajax". 
  17. "Access Control for Cross-Site Requests". World Wide Web Consortium. Retrieved 2008-06-27. 
  18. Sullivan, Bryan. "Testing for security in the age of Ajax Programming". developerFusion. Retrieved 2008-10-15. 
  19. Stamos, Alex; Lackey, Zane. "Attacking Ajax Web Applications". iSEC Partners. Retrieved 2009-04-02. 

వెలుపటి వలయము[మార్చు]

Commons-logo.svg
వికీమీడియా కామన్స్‌లో కి సంబంధించిన మీడియా ఉంది.