O’zbekiston Respublikasi Xalq ta’limi vazirligi
Alisher Navoiy nomidagi Toshkent Davlat O’zbek tili va
adabiyoti universiteti AFF fakulteti noshirlik ishi
Dinamik sahifalarni loyihalashtirish fanidan
“AJAX so‘rovlari ” mavzusida
MUSTAQIL ISH
Bajardi: Aziza Xurramova
Tekshiruvchi:Rasul Atamuratov
Toshkent-2022
Foydali AJAX skriptlari:
Mocha - bu veb-dasturlarda foydalanuvchi interfeysini yaratish uchun javascript ramkasi - Mootools asosida yaratilgan kutubxona. Mocha GUI komponentlari grafik teglar bilan tayyorlangan
Swf Ajax bilan o'zaro aloqada. Ko'p yuklashni (bir nechta fayllarni) bajarishga imkon beradigan va yuklab olingan fayllarning har biri uchun bajarilish satriga ega bo'lgan fayllarni yuklash uchun vidjet.
iCarousel - bu skrinshotdagi kabi vidjetlarni yaratish uchun ochiq manba kodli java skript vositasi.
Namoyish: http://zendold.lojcomm.com.br/icarousel/example6.asp
Jadvallar, daraxtlar, derazalar, qatlamlar, shakllar, yorliqlar kabi ko'plab modul va tarkibiy qismlarga ega bo'lgan JavaScript-ning keng doirasi, ularning barchasi ekran tasvirlari misolida tanish bo'lgan ish stoli dasturlarida bo'lgani kabi ko'rinadi.
Stol choyshab - bu sizning stollaringizga uslub va xatti-harakatlarni qo'shish uchun engil, ishlatish uchun qulay, oddiy usul. O'zingizning sahifangizga atigi 2 satr kod qo'shib, siz tashrif buyuruvchilarga yoqadigan zamonaviy va faol jadvallarni olasiz. Sichqonchani stol ustiga siljitishga harakat qiling :).
FancyForm - bu standart katakchalarni almashtirish va sizning shakllaringizga qulaylik va go'zallik qo'shish uchun kuchli skript bo'lib, ulardan foydalanish oson, barcha brauzerlar tomonidan qo'llab-quvvatlanadi.
Starbox faqat bitta PNG rasm yordamida har qanday reyting (ovoz berish) ni tashkil qilishni osonlashtiradi. Skript Prototip javascript ramkasiga asoslangan. Qo'shimcha effektlar uchun Scriptaculous kutubxonasini qo'shishingiz mumkin. Saytda skriptni amalga oshirish va sozlash variantlarining batafsil tavsifi mavjud.
Prototip interfeysi. Karusel galereyasi, undagi katta rasm galereyalari bo'ylab o'tish qulay bo'ladi.
Kichik va sodda php / javascript onlayn foto galereyasi, AJAX dan foydalanadi, hech qanday ma'lumotlar bazasini yoki qo'shimcha skriptlarni o'rnatishni talab qilmaydi, bir necha daqiqada to'liq galereyani yaratishga imkon beradi.
Vaqt chizig'i - bu sana voqealarini ko'rsatish uchun DHTML va AJAX-ga asoslangan skript. Ushbu skriptdan qanday maqsadlarda foydalanish mumkinligini tushunish uchun demoga e'tibor bering. O'lchovni gorizontal ravishda tortib, ma'lumotlarni o'zgartiring.
mooSlideBox v3 - bu "lightbox" ning kichik va oddiy o'rnini bosuvchi, IE 6/7, Opera va Firefox brauzerlarida ishlaydi.
Skript talablari faqat GET-larni anglatadi va kuzatishda xatoliklarga duch keladi. Boshqa tomondan, ular har qanday domenlar uchun yaratilishi mumkin,
ushbu transport vositasini qo'llashning asosiy yo'nalishi hisoblanadi.
DOM orqali har qanday teglarni yaratish va hujjatga qo'shish mumkin. Agar siz tugunni yaratsangiz
Brauzer yorlig'i darhol ishlaydi: berilgan URL-dan newMail.js-ni so'raydi va bajaradi.
Skript yuklanganda, u qandaydir tarzda ma'lumotlar yuklanganligini e'lon qilishi kerak va siz ularni boshqarishingiz mumkin.
Odatda buning uchun qayta qo'ng'iroq ishlatiladi, ya'ni skript oxirida maxsus funktsiyaga qo'ng'iroq qilinadi.
Qaysi qo'ng'iroqni chaqirishni qaysi skriptga chaqirish kerakligini aniq ko'rsatish uchun funktsiya nomi alohida parametr sifatida uzatiladi. Masalan,
... // ishlov beruvchini o'rnating var handler \u003d function (data) (...) // keyingi skript ishlov beruvchisi uchun raqamni oldiId ++ // aslida, qayta qo'ng'iroq ishlov beruvchining o'zi emas, balki xizmat funktsiyasidir // qo'shimcha ravishda muvaffaqiyatli yuklashni boshqaradi va keraksiz skript yorlig'ini tozalaydi
Server qayta qo'ng'iroq qilish parametrining qiymatini ko'rib chiqadi va skriptga scriptHandlers.script_XXX ga qo'ng'iroqni qo'shadi, bu erda script_XXX - qayta qo'ng'iroq qilish parametrining qiymati.
Odatda, server oddiygina mijozga ma'lumot beradi, so'rovga o'xshash qo'ng'iroq bilan javob beradi
ScriptHandlers.script_XXX ((jo'natuvchi: "Petya", senderId: 6))
Ushbu format JSONP: JSON bilan Pqo'shish, chunki javascript ob'ektlari (XML emas va boshqalar) ma'lumotlar almashinuvi uchun ishlatiladi va
qo'shimcha funktsiya (to'ldirish).
Serverga katta hajmdagi ma'lumotlarni yuborish (Multipart)
GET so'rovlarida URL uzunligi cheklangan. Bu brauzer serveriga bog'liq, taxminan 1kb xavfsiz qiymatdir.
Shuning uchun serverga katta qismlarni yuborish uchun ko'p qismli protokoldan foydalaniladi.
Har bir so'rov ikkita parametr bilan ta'minlanadi: noyob identifikator va uning raqami.
Ko'p qismli so'rovning birinchi elementi qism \u003d 1 ga ega, ikkinchisida qism parametri yo'q. Shunday qilib, server olgan qismlarini hisoblashi mumkin.
Aloqa xatolari
Har bir so'rov bilan taymer yaratiladi. Agar so'rov muvaffaqiyatli bo'lsa, taymer o'chiriladi. 10 soniyadan so'ng taymer yonadi va so'rov xatosini keltirib chiqaradi.
Ushbu ishlov berish iframe yoki XmlHttpRequest-ga qaraganda ancha yomon, bu erda server tomonidan xato (404,500) darhol ko'rinadi.
"Ajax amalda" turkumining to'rtta maqolasida ham biz ushbu texnologiyadan kutubxona yordamida qanday foydalanishni aniqladik jQuery va, xususan, uning usuli $ .ajax (), lekin siz doimo ramkalardan foydalanishingiz kerakmi? Masalan, agar siz o'zingizning loyihangizda kutubxonadan boshqa joyda foydalanmasangiz, unda qo'shimcha kilobaytli sahifalarni yuklash mutlaqo o'rinli emas, ayniqsa, agar ularning soni to'qson kilobayt bo'lsa. Xulosa - biz yozamiz ajax so'rovi sof JavaScript-da, ayniqsa o'sha jQuery kutubxonasi, tayyorlangan usullar to'plamidan boshqa narsa emas ( funktsiyalari) mahalliy JSda yozilgan. Agar taqqoslash uchun "Shakldan ma'lumot olish" maqolasidan JS kodini olsak, kodni qayta yozsak, quyidagilarni bajarishimiz kerak bo'ladi:
⦁ Barcha hujjat yuklanishini kuting
⦁ Elementni oling
⦁ Yuborilgan voqea ishlovchisini osib qo'ying
⦁ Yuborish uchun ariza ma'lumotlarini tayyorlang
⦁ XMLHttpRequest obyektini yarating
⦁ XHR yordamida ma'lumotlarni yuboring
⦁ Server javobini oling, qayta ishlang va namoyish qiling
Keling, qadamma qadam ...
1) Odatiy $ (function () ()) yoki $ (document) .ready (function () ()) o'rniga biz o'zimiz voqea ishlovchilarini o'rnatdik. yuklash... Lekin birinchi navbatda, nima uchun biz qurilishni ishlatmasligimizga aniqlik kiritmoqchiman element.onevent \u003d funktsiya;... Ushbu usul o'zaro faoliyat brauzer bo'lishiga qaramay, uning asosiy kamchiligi shundaki, bitta elementga ikkita yoki undan ortiq ishlov beruvchilarni o'rnatib, ikkinchisi oldingilarini "yozib qo'yadi" va ular "kerakli dasturni orqaga qaytarib qo'ymaydi". Shuning uchun, bir nechta satr uchun ko'proq kod bo'lsa ham, biz uni quyidagicha yozamiz:
// voqea ishlovchilarini brauzerlararo o'rnatishi funktsiyasi addEvent (elem, type, handler) function (if (elem.addEventListener) (elem.addEventListener (type, handler, false);) else (elem.attachEvent ("on" + type, handler) ;) return false;) // Biz hujjatni yuklash hodisasi ishlovchisini osib qo'yamiz - DOM-Ready addEvent (oyna, "yuklash", init);
Hujjat yuklangandan so'ng funktsiya chaqiriladi initbu erda biz formamizga kirishimiz mumkin. Agar barcha js-kodlar hujjatning oxirida, yopilishidan oldin joylashgan bo'lsa, ushbu qadamni o'tkazib yuborishingiz mumkin, ammo holatlar boshqacha ...
2) Init funktsiyasida biz o'z shaklimizga kiramiz va o'z navbatida unga yuborish hodisasi ishlovchisini o'rnatamiz.
// hujjat funktsiyasini yuklaganidan keyin init () (chiqish \u003d d.getElementById ("chiqish")); // javobda olingan natijani chiqaradigan element myform \u003d d.getElementById ("my_form"); // form addEvent (myform) , "submit", sendAjaxRequest); // return return false for form hodisasiga ishlov beruvchini o'rnating;)
Yuborish hodisasida sendAjaxRequest funktsiyasi chaqiriladi. Va darhol biz ushbu funktsiyaga o'tamiz, u erda biz so'rov uchun ariza ma'lumotlarini shakllantiramiz va ajax so'rovi bilan yuboramiz. Siz ob'ekt yordamida ma'lumotlar yaratishingiz mumkin FormDatasiz uchrashgan bo'lishingiz mumkin ( agar ilgari bir-biringizni bilmasangiz) "Shakldan ma'lumot olish" maqolasida yoki ba'zi bir tanlovchilarga ko'ra qiymatlarni oladigan shaklning har bir elementiga murojaat qiling yoki shakl elementlarini ko'chadan ko'rib chiqing. Lekin, birinchi navbatda, biz yuborish hodisasida shaklning odatdagi harakatlarini bekor qilishimiz kerak:
// Ajax so'rovi funktsiyasi funktsiyasi sendAjaxRequest (e) (var evt \u003d e || window.event; agar (evt.preventDefault) (evt.preventDefault (); // oddiy brauzerlar uchun) else) (evt.returnValue \u003d false; / / IE ning eski versiyalari uchun) // .....)
Xuddi shu vazifada biz barcha shakl ma'lumotlarini to'playmiz:
// shakl ma'lumotlarini yaratish var elems \u003d myform.elements, // barcha shakl elementlari url \u003d myform.action, // ishlov beruvchiga yo'l (bizning shaklimizning harakat atributidan oling) params \u003d, elName, elType; // forning barcha elementlari orqali o'tish (var i \u003d 0; i
Chiqish paytida url o'zgaruvchisida biz "http://site.com/handler.php?name1\u003dval1&name2\u003dval2&nameN\u003dvalN" kabi qatorni olamiz. Agar oldingi bosqichlarda hech qanday qiyinchiliklar bo'lmagan bo'lsa, unda siz to'g'ridan-to'g'ri ajax so'roviga o'tishingiz mumkin va biz bularning hammasini sendAjaxRequest funktsiyasida yozishni davom ettirmoqdamiz. Ammo bu erda ham bitta eslatma qilish kerak. IE ning eski versiyalaridan foydalanadigan foydalanuvchilar hali ham mavjud bo'lganligi sababli, siz XMLHttpRequest ob'ektini yaratishda buni hisobga olishingiz kerak. Internet Explorer 10-versiyaga qadar uni qo'llab-quvvatlamaydi, lekin o'z dasturiga ega - ActiveXObject. Shuning uchun biz aniq brauzerlar uchun ob'ektimizni yaratish uchun yana bir funktsiyani yozamiz:
Funktsiya getXhrObject () (if (typeof XMLHttpRequest \u003d\u003d\u003d "undefined")) (XMLHttpRequest \u003d function () (try (return new window.ActiveXObject ("Microsoft.XMLHTTP");) catch (e) ());) return new XMLHttpRequest ();)
Ehtimol siz yanada murakkab dasturlarni ko'rgansiz, ammo ishontirib aytamanki, bugun bu etarli, chunki IE ning eski versiyalari haqida gapirganda, ettinchisini va undan pastini hisoblamayman. Nega sakkizinchi "eshak" hali ham e'tiborga muhtoj? O'zim uchun buni oddiygina aniqladim: bugungi kunda Windows 7 hali ham mashhur bo'lib, IE8 sukut bo'yicha u bilan birga to'plangan. Hamma ham imkoniyatga ega emas (masalan, ish joyida), yoki ular qanday qilib o'zlarini bilishmaydi, yoki insonparvarroq versiyaga o'tishni xohlamaydilar va biz bunga toqat qilishimiz kerak ... Umid qilaman. bu uzoq emas;)
Va biz davom etamiz. Yangi XHR ob'ekti yarating ( XMLHttpRequest), uning usuli yordamida ulanishni oching ochiq (), biz tadbirdan foydalanamiz onreadystatechange so'rovning bajarilish holatini tekshirish uchun ( readyState) va serverning javob holati ( holat) va usul yordamida serverga so'rov yuboring yuborish ()... Qachon readyState ga teng qiymatni oladi 4 (so'rov bajarildi) va holat qiymat 200 (OK), biz serverda javobni namoyish qilishimiz yoki boshqa maqsadlarda foydalanishimiz mumkin, bu mulkka biz uchun mavjud bo'ladi responseText yoki javob xmlagar biz javob sifatida to'liq XML hujjat olsak.
Var xhr \u003d getXhrObject (); xhr.open ("GET", url, true); xhr.onreadystatechange \u003d function () (if (xhr.readyState \u003d\u003d 4 && xhr.status \u003d\u003d 200) (output.innerHTML \u003d JSON.parse (xhr.responseText);)) xhr.send (null);
Open () usulidagi uchinchi parametr so'rov qanday amalga oshirilishini bildiradi: true - asenkron, false - sinxron. Ko'pgina hollarda, mos kelmaydigan so'rov ishlatiladi, ya'ni server javobini kutayotganda sahifa o'z ishini bloklamaganida. E'tibor bergan bo'lsangiz, yuqoridagi kodda men ma'lumotlarni uzatishning "GET" http usulidan foydalanganman. "POST" usuli uchun, shuningdek, serverga so'rov bilan birga uzatiladigan sarlavhalarni qo'shishingiz va yana bir oz o'zgartirish kiritishingiz kerak: ikkinchi parametr bilan ( urlopen () usulida bizda faqat ishlov beruvchiga yo'l bo'ladi va biz hosil qilingan satrni form ma'lumotlari bilan send () usuliga o'tkazamiz:
Var xhr \u003d getXhrObject (); xhr.open ("POST", url, rost); xhr.setRequestHeader ("Content-type", "application / x-www-form-urlencoded"); xhr.setRequestHeader ("Content-length", params.length); xhr.setRequestHeader ("Ulanish", "yopish"); xhr.onreadystatechange \u003d function () (if (xhr.readyState \u003d\u003d 4 && xhr.status \u003d\u003d 200) (output.innerHTML \u003d JSON.parse (xhr.responseText);)) xhr.send (params.join ("& "));
Mana shunday. Bu barcha konstruktorni to'plash va to'liq ro'yxatni berish kifoya.
Var d \u003d hujjat, myform, chiqish; // o'zaro faoliyat brauzerni o'rnatish hodisasini qayta ishlash funktsiyasi addEvent (elem, type, handler) (if (elem.addEventListener) (elem.addEventListener (type, handler, false);) else (elem.attachEvent ("on" + type, handler); ) false return;) // Yangi XMLHttpRequest ob'ekt funktsiyasini yaratish uchun umumiy funktsiya getXhrObject () (agar (XMLHttpRequest \u003d\u003d\u003d "undefined") (XMLHttpRequest \u003d function () (urinib ko'ring (qaytadan yangi oyna.ActiveXObject ("Microsoft.XMLHTTP") );) catch (e) ());) yangi XMLHttpRequest ();) qaytarish // Ajax so'rov funktsiyasining funktsiyasi sendAjaxRequest (e) (var evt \u003d e || window.event; // Yuborish hodisasida standart shakl amalini bekor qilish. if (evt.preventDefault) (evt.preventDefault (); // oddiy brauzerlar uchun) else (evt.returnValue \u003d false; // eski IE versiyalari uchun) // yangi XMLHttpRequest ob'ekti oling var xhr \u003d getXhrObject (); agar ( xhr) (// ariza ma'lumotlarini yaratish var elems \u003d myform.elements, // barcha shakl elementlari url \u003d myform.action, // parga yo'l ams \u003d, elName, elType; // forning barcha elementlari orqali o'tish (var i \u003d 0; i
Albatta, bunday qator kod satrlari, $ .ajax () bilan yozish bilan solishtirganda, dangasa odamlarni qo'rqitishi mumkin, ammo hech qanday kutubxonasiz ishlashingiz mumkinligini bilish siz uchun ortiqcha bo'ladi. Agar siz loyihangizning boshqa biron bir joyida js ramkalarini ishlatmasangiz, uni ishlatishingiz kerak, chunki kutubxonani ulab, siz sahifani 90 kilobaytga vazn yozasiz va yozish orqali mahalliy JS - atigi 4 ta, agar siz kodni kichraytirsangiz, u holda atigi 2Kb! Siz farqni his qilyapsizmi? ;)
Bu mening Ajax seriyamni yakunlaydi. Savollar bo'ladi - so'rang, iloji boricha javob beraman yoki yangi maqolalar bilan to'ldiraman. Omad!
Sahifani qayta yuklamasdan serverga so'rov yuboradi. Bu juda ko'p moslashtirilgan past darajadagi usul. Bu boshqa barcha ajax usullarining asosidir. Ikkita foydalanish holatlari mavjud:
url - manzilni so'rash.
sozlamalar - ushbu parametrda ushbu so'rov uchun sozlamalarni o'rnatishingiz mumkin. Formatdagi ob'ekt yordamida aniqlanadi (ism: qiymat, ism: qiymat ...). Sozlamalarning hech biri talab qilinmaydi. Standart sozlamalarni $ .ajaxSetup () usuli yordamida o'rnatishingiz mumkin.
Sozlamalar ro'yxati
↓ nomi: turi (standart)
So'rov yuborilganda, sarlavhalar serverdan kutilgan haqiqiy tarkib turlarini belgilaydi. Ushbu turdagi qiymatlar qabul qilish parametridan olinadi.
Odatiy bo'lib, sahifani qayta yuklamagan barcha so'rovlar asenkron tarzda sodir bo'ladi (ya'ni serverga so'rov yuborilgandan so'ng, javob kutilayotganda sahifa o'z ishini to'xtatmaydi). Agar sizga sinxron so'rov bajarilishi kerak bo'lsa, parametrni "false" ga o'rnating. O'zaro faoliyat domen va "jsonp" so'rovlarini sinxron ravishda bajarish mumkin emas.
Shuni yodda tutingki, sinxron rejimda so'rovlarni bajarish, so'rov to'liq bajarilguncha sahifalarni blokirovka qilishga olib kelishi mumkin.
Ushbu maydon ajax so'rovini serverga yuborishdan oldin darhol chaqiriladigan funktsiyani o'z ichiga oladi. Bunday funktsiya jqXHR ob'ektini o'zgartirish uchun foydali bo'lishi mumkin (kutubxonaning oldingi versiyalarida (1,5 gacha), jqXHR o'rniga XMLHttpRequest ishlatiladi). Masalan, kerakli sarlavhalarni o'zgartirish va belgilash va h.k. Object-jqXHR funktsiyaga birinchi argument sifatida uzatiladi. Ikkinchi argument - bu so'rov parametrlari.
Ushbu sohada siz qo'shimcha so'rovlarning sarlavhalarini (sarlavhasini) belgilashingiz mumkin. Ushbu o'zgarishlar, oldingi sarlavhani so'nggi tahrirlashi mumkin bo'lgan oldinSend-ga qo'ng'iroq qilishdan oldin amalga oshiriladi.
Ushbu parametr "true" ga o'rnatilganda, so'rov "muvaffaqiyatli" holati bilan bajariladi, agar serverning javobi avvalgi javobdan farq qilsa. jQuery buni Oxirgi o'zgartirilgan sarlavhaga qarab tasdiqlaydi. JQuery-1.4 dan boshlab, Last-Modified-dan tashqari, "etag" ham tekshiriladi (ikkalasi ham server tomonidan taqdim etiladi va brauzerga serverdan so'ralgan ma'lumotlar avvalgi so'rovdan beri o'zgarmaganligi to'g'risida xabar berish uchun kerak).
Agar jQuery uni boshqacha tanigan bo'lsa ham, sahifa manbai holatini mahalliy (masalan, fayl protokolidan foydalanayotgandek) belgilashga imkon beradi. Kutubxona sahifani quyidagi protokollar uchun lokal ravishda ishga tushirishga qaror qiladi: fayl, * - kengaytma va vidjet.
Parametr qiymatini o'rnatish tavsiya etiladi isLocal individual ajax so'rovlari sozlamalarida emas, balki $ .ajaxSetup () funktsiyasidan global foydalanishda.
Jsonp so'rovi paytida urlga qo'shiladigan parametr nomini belgilaydi (sukut bo'yicha "qayta qo'ng'iroq" ishlatiladi - "httr: //siteName.ru? Callback \u003d ...").
JQuery-1.5 dan boshlab, ushbu parametrda false qiymatini ko'rsatish urlga qo'shimcha parametr qo'shilishini oldini oladi. Bunday holda, siz jsonpCallback xususiyatining qiymatini aniq belgilashingiz kerak. Masalan, shunga o'xshash: (jsonp: false, jsonpCallback: "callbackName").
Server jsonp so'roviga javob berganida chaqiriladigan funktsiya nomini belgilaydi. Odatiy bo'lib, jQuery ushbu funktsiya uchun o'zboshimchalik bilan nom ishlab chiqaradi, bu kutubxonadan foydalanishni osonlashtiradigan afzal variant hisoblanadi. O'zingizning jsonp so'rovlarini ko'rib chiqish funktsiyasini belgilashning sabablaridan biri bu GET so'rovlarini keshlashni yaxshilashdir.
JQuery-1.5 dan beri, serverning javobini o'zingiz boshqarish uchun ushbu parametrda funktsiyani belgilashingiz mumkin. Bunday holda, belgilangan funktsiya serverdan olingan ma'lumotlarni qaytarishi kerak (belgilangan funktsiyalarda ular birinchi parametrda mavjud bo'ladi).
Odatiy bo'lib, serverga uzatiladigan barcha ma'lumotlar oldindan "application / x-www-form-urlencoded" ga mos keladigan satrga (url-format: fName1 \u003d value1 & fName2 \u003d value2 & ...) aylantiriladi. Agar siz shu tarzda qayta ishlanmaydigan ma'lumotlarni yuborishingiz kerak bo'lsa (masalan, DOM hujjati), unda processData parametrini o'chirib qo'yishingiz kerak.
Ushbu parametr domenlararo ajax GET so'rovlari uchun ishlatiladi, DataType "jsonp" yoki "skript" bo'lishi mumkin. Inter-domen so'rovi bajariladigan kodlashni aniqlaydi. Agar chet el domenidagi server uy domeni serveridagi kodlashdan boshqacha kodlashni ishlatsa, bu zarur.
(Ushbu parametr jQuery-1.5 da kiritilgan) so'rovni bajarish kodlari bu holda chaqiriladigan funktsiyalar bilan bog'liq bo'lgan juftliklar to'plami. Masalan, 404 kod uchun (sahifalar mavjud emas), siz xabarni ekranda ko'rsatishingiz mumkin:
$ .ajax ((statusCode: (404: function () (ogohlantirish ( "Sahifa topilmadi") ; } } } ) ;
So'rovni muvaffaqiyatli bajarilishi uchun kodlarga javob beradigan funktsiyalar so'rovni muvaffaqiyatli bajarilishini boshqaradigan funktsiyalar (muvaffaqiyat parametrida ko'rsatilgan) va xato kodlariga javob beradigan funktsiyalar xato funktsiyalari bilan bir xil bo'ladi.
Serverga so'rov muvaffaqiyatli bajarilgan taqdirda chaqiriladigan funktsiya. Bunga uchta parametr beriladi: server tomonidan yuborilgan va oldindan qayta ishlangan ma'lumotlar (bu har xil dataType uchun farq qiladi). Ikkinchi parametr - bu bajarilish holatiga ega bo'lgan satr. Uchinchi parametr jqXHR ob'ektini o'z ichiga oladi (kutubxonaning oldingi versiyalarida (1,5 gacha), jqXHR o'rniga XMLHttpRequest ishlatiladi). JQuery-1.5 bo'lgani uchun bitta funktsiya o'rniga ushbu parametr bir qator funktsiyalarni qabul qilishi mumkin.
Serverdan javob kutish vaqti. Milisekundlarda o'rnatilgan. Agar bu vaqtdan oshib ketgan bo'lsa, so'rov xato bilan yakunlanadi va "kutish vaqti" holatiga ega bo'lgan xatolik yuz beradi (yuqoridagi tavsifga qarang).
Vaqt $ .ajax funktsiyasi chaqirilgan paytdan boshlab hisoblanadi. Bunday paytda yana bir nechta so'rovlar ishga tushirilishi va brauzer joriy so'rovni bajarilishini keyinga qoldirishi mumkin. Ushbu holatda vaqt tugadi so'rov hali boshlanmagan bo'lsa ham bajarilishi mumkin.
Do'stlaringiz bilan baham: |