Ajax

**Ajax** (ასევე, **AJAX**; „Asynchronous JavaScript And XML“-ის აბრევიატურა) — ინტერაქტიული ვებ აპლიკაციების შექმნის ტექნოლოგია. ამ ტექნოლოგიის შესასწავლად საჭიროა, იცოდეთ HTML/XHTML, XML/JSON და JavaScript. Ajax-ის დახმარებით JavaScript-ს შეუძლია დაუკავშირდეს სერვერს XMLHttpRequest ობიექტის გამოყენებით. ამ ობიექტის დახმარებით, JavaScript-ს შეუძლია ეკრანზე მასალის განახლება ვებ სერვერთან კომუნიკაციის შესაბამისად, გვერდის ხელახლა ჩატვირთვის გარეშე. აბრევიატურაში XML-ის გამოყენების მიუხედავად, პრაქტიკაში, თანამედროვე ვებ აპლიკაციებში XML-ის ნაცვლად JSON გამოიყენება მისი უპირატესობის გამო, რაც JavaScript-თან უკეთეს ინტეგრაციას გულისხმობს.

Ajax იყენებს ასინქრონიზებულ მონაცემთა გადაცემას ბრაუზერსა და ვებ სერვერს შორის და საშუალებას აძლევს ვებ გვერდს სერვერიდან მოითხოვოს ინფორმაციის მხოლოდ ის ბიტები, რომლის მიმოხილვაც სურს მომხმარებელს.

Ajax ტექნოლოგია ვებ აპლიკაციებს ხდის უფრო პატარას, სწრაფს და მომხმარებელზე მორგებულს.

### ვებ სტანდარტები 
Ajax ეყრდნობა შემდეგ ვებ სტანდარტებს:
* HTML (ან XHTML) და CSS — შედეგის წარმოჩენისთვის
* დოკუმენტის ობიექტის მოდელი (დომ) — დინამიური ჩვენებისა და მონაცემებთან მუშაობისთვის
* XML (ტრადიციულად) ან JSON (თანამედროვეობაში) — მონაცემთა გაცვლისთვის და XSLT — მათზე მოქმედებისთვის
* XMLHttpRequest ობიექტი — ასინქრონული კომუნიკაციისთვის
* JavaScript — აერთიანებს ამ ტექნოლოგიებს

Ajax-ში გამოყენებული ვებ სტანდარტები კარგადაა განსაზღვრული და უზრუნველყოფილია ყველა ბრაუზერის მიერ. აპლიკაციები, რომლებიც Ajax-ს იყენებს, არის ბრაუზერისგან და პლატფრომისგან დამოუკიდებელი.

### ტექნოლოგიის პოტენციალი 
ბევრი ვებ აპლიკაცია სისტემურ აპლიკაციებზე სასარგებლოა რადგან ისინი არის ადვილად დასაყენებელი, უზრუნველყოფილი და ადვილად შესაქმნელი; თუმცა ვებ აპლიკაციები არ არის ყოველთვის „მდიდარი“ და მომხმარებელზე მორგებული, ისე, როგორც სისტემური აპლიკაციები. Ajax-ის გამოყენებით ვებ აპლიკაციები, შესაძლოა, გახადოთ უფრო მდიდარი და მომხმარებელზე მორგებული.

## HTTP დაკავშირება 
იმისათვის რომ შეძლოთ Ajax-ის შესაძლებლობების გამოყენება საჭიროა გამოიყენოთ ბრაუზერი რომელშიც შესაძლებელია Ajax ბრძანებების აღქმა ე.ი. უნდა ჰქონდეს Ajax ენის სრული მხარდაჭერა.
Ajax-ის გამოყენება ხდება JavaScript-ის მსგავსად HTML დოკუმენტში  ტეგებს  შორის.
Ajax კოდის წერისას პირველ რიგში საჭიროა დავუკავშირდეთ HTTP-ს:

var httprequest;
httprequest=new XMLHttpRequest();

ასევე ყურადღება მიაქციეთ კოდში დიდი ასოების გამოყენებას რადგან ამას დიდი მნიშვნელობა აქვს,მაგალითად `XMLHttpRequest()` კონსტრუქტორი აუცილებლად უნდა იყოს ზუსტად ასეთი სახით და არ უნდა იქნეს დიდი ასოების ნაცვლად პატარა რეგისტრის ასოები გამოყენებული რადგან ეს კოდში შეცდომას გამოიწვევს.
### მაგალითი 

var httprequest;
xmlrequest=new XMLHttpRequest();
httprequest.onreadystatechange=function(){
document.getElementById("place").InnerHTML=httprequest.responseText;
}
httprequest.open("GET","request.php",true);
httprequest.send();

ზემოთ მოცემულ მაგალითში პირველად ხდება HTTP პროტოკოლთან დაკავშირება,
შემდეგ ფუნქციში `httprequest.onreadystatechange`
იწერება ჩვენს მიერ შექმნილი რაიმე ფუნქცია რომელიც უნდა შესრულდეს სკრიპტის გაშვების პროცესში.
შემდეგი ბრძანება არის
`document.getElementById("place).InnerHTML=httprequest.responseText;`.
ამ ბრძანებაში მითითებულია რომ დოკუმენტში,იქ სადაც ელემენტის Id იქნება "place" გამოვა  სკრიპტის მიერ შესრულებული ბრძანების შედეგი და აქ მთავრდება ფუნქცია,ამის შემდეგ ბრძანება `httprequest.open("GET","request.php",true)` გამოიყენება ფაილის გასახსნელად საიდანაც მიღებული შედეგი გაიგზავნება იქ სადაც ელემენტის Id იქნება "place".
GET არის ფაილის გახნის მეთოდი რომლის დროსაც შესრულებული ბრძანება აისახება ბრაუზერის მისამართის ველში.
request.php არის ფაილი რომლისგანაც მიღებული შიგთავსი გაიგზავნება ელემენტში რომლის Id არის "place".
მესამე არგუმენტი true არის სინქრონიზაციის აღმნიშვნელი,ე.ი. ბრძანებები შესრულდება სინქრონულად და თანმიმდევრობით(მნიშვნელობა შეიძლება იყოს ასევე false  რომელიც წინა არგუმენტის საპირისპირო მნიშვნელობისაა).
შემდეგ არის ბრძანება `httprequest.send()`.
ეს ბრძანება გამოიყენება მონაცემების გასაგზავნად თუმცა წინა მაგალითში ის არანაირ მონაცემებს არ აგზავნის request.php ფაილში რადგან როდესაც მეთოდი არის GET ამ შემთხვევაში ამ ბრძანების ფუნქციას ითვისებს `httprequest.open` ფუნქცია რაც განხილული იქნება შემდეგ მაგალითებში.

## რესურსები ინტერნეტში 
* Ajax: A New Approach to Web Applications &nbsp;— Article that coined the Ajax term and Q&A
* 
* Ajax Tutorial with GET, POST, text and XML examples.

## სქოლიო 
კატეგორია:Ajax კატეგორია:ვებ-პროგრამირება კატეგორია:ღრუბლოვანი ტექნოლოგიები კატეგორია:პროცესთაშორისი კომუნიკაცია