ASP AJAX

AJAX — butun sahifani qayta yuklamasdan veb-sahifaning ayrim qismlarini yangilash demakdir.


ULASHISH

AJAX nima?

AJAX = Asynchronous JavaScript and XML (asinxron JavaScript va XML).

AJAX — tez va dinamik veb-sahifalar yaratish texnikasi.

AJAX parda ortida server bilan kichik hajmdagi ma’lumotlar almashish orqali veb-sahifalarni asinxron yangilash imkonini beradi. Bu butun sahifani qayta yuklamasdan veb-sahifaning ayrim qismlarini yangilash mumkinligini anglatadi.

Klassik veb-sahifalar (AJAX ishlatmaydiganlar) mazmun o‘zgarishi kerak bo‘lsa, butun sahifani qayta yuklashi kerak.

AJAX’dan foydalanadigan ilovalarga misollar: Google Maps, Gmail, Youtube va Facebook tablari.


AJAX qanday ishlaydi

AJAX


AJAX internet standartlariga asoslanadi

AJAX internet standartlariga asoslanadi va quyidagilarning kombinatsiyasidan foydalanadi:

  • XMLHttpRequest obyekti (server bilan asinxron ma’lumot almashish uchun)
  • JavaScript/DOM (ma’lumotlarni ko‘rsatish va ular bilan ishlash uchun)
  • CSS (ma’lumotlarga uslub berish uchun)
  • XML (ko‘pincha ma’lumot uzatish formati sifatida ishlatiladi)

AJAX ilovalari brauzer va platformaga bog‘liq emas!



Google Suggest

AJAX 2005-yilda Google tomonidan Google Suggest orqali ommalashdi.

Google Suggest juda dinamik veb-interfeys yaratish uchun AJAX’dan foydalanadi: Google qidiruv maydoniga yoza boshlaganingizda, JavaScript harflarni serverga yuboradi va server takliflar ro‘yxatini qaytaradi.


AJAX’dan bugunoq foydalanishni boshlang

ASP darsligimizda AJAX butun sahifani qayta yuklamasdan veb-sahifaning ayrim qismlarini qanday yangilashini ko‘rsatamiz. Server skripti ASP’da yoziladi.

AJAX haqida ko‘proq bilmoqchi bo‘lsangiz, AJAX darsligimizga tashrif buyuring.

AJAX ASP misoli

Quyidagi misol foydalanuvchi kiritish maydoniga belgilar yozayotganda veb-sahifa veb-server bilan qanday aloqa qila olishini ko‘rsatadi:

Misol

Start typing a name in the input field below:

First name:

Suggestions:



Misol izohi

Yuqoridagi misolda foydalanuvchi kiritish maydoniga belgi yozganda "showHint()" nomli funksiya bajariladi.

Funksiya onkeyup hodisasi orqali ishga tushadi.

Mana HTML kodi:

Misol

<html> <head> <script> function showHint(str) {     if (str.length == 0) {         document.getElementById("txtHint").innerHTML = "";         return;     } else {         var xmlhttp = new XMLHttpRequest();         xmlhttp.onreadystatechange = function() {             if (this.readyState == 4 && this.status == 200) {                 document.getElementById("txtHint").innerHTML = this.responseText;             }         };         xmlhttp.open("GET", "gethint.asp?q=" + str, true);         xmlhttp.send();     } } </script> </head> <body> <p><b>Start typing a name in the input field below:</b></p> <form> First name: <input type="text" onkeyup="showHint(this.value)"> </form> <p>Suggestions: <span id="txtHint"></span></p> </body> </html>
O‘zingiz sinab ko‘ring »

Kod tushuntirishi:

Avval kiritish maydoni bo‘shligini tekshiring (str.length == 0). Agar bo‘sh bo‘lsa, txtHint joy egasining mazmunini tozalang va funksiyadan chiqing.

Biroq kiritish maydoni bo‘sh bo‘lmasa, quyidagilarni bajaring:

  • XMLHttpRequest obyektini yaratish
  • Server javobi tayyor bo‘lganda bajariladigan funksiyani yaratish
  • So‘rovni serverdagi ASP fayliga (gethint.asp) yuborish
  • E’tibor bering, q parametri qo‘shiladi: gethint.asp?q="+str
  • str o‘zgaruvchisi kiritish maydonining mazmunini saqlaydi

ASP fayli - "gethint.asp"

ASP fayli ismlar massivini tekshiradi va mos keladigan ism(lar)ni brauzerga qaytaradi:

<% response.expires=-1 dim a(30) 'Fill up array with names a(1)="Anna" a(2)="Brittany" a(3)="Cinderella" a(4)="Diana" a(5)="Eva" a(6)="Fiona" a(7)="Gunda" a(8)="Hege" a(9)="Inga" a(10)="Johanna" a(11)="Kitty" a(12)="Linda" a(13)="Nina" a(14)="Ophelia" a(15)="Petunia" a(16)="Amanda" a(17)="Raquel" a(18)="Cindy" a(19)="Doris" a(20)="Eve" a(21)="Evita" a(22)="Sunniva" a(23)="Tove" a(24)="Unni" a(25)="Violet" a(26)="Liza" a(27)="Elizabeth" a(28)="Ellen" a(29)="Wenche" a(30)="Vicky" 'get the q parameter from URL q=ucase(request.querystring("q")) 'lookup all hints from array if length of q>0 if len(q)>0 then   hint=""   for i=1 to 30     if q=ucase(mid(a(i),1,len(q))) then       if hint="" then         hint=a(i)       else         hint=hint & " , " & a(i)       end if     end if   next end if 'Output "no suggestion" if no hint were found 'or output the correct values if hint="" then   response.write("no suggestion") else   response.write(hint) end if %>

AJAX ma’lumotlar bazasi bilan interaktiv aloqa uchun ishlatilishi mumkin.


AJAX ma’lumotlar bazasi misoli

Quyidagi misol veb-sahifa AJAX yordamida ma’lumotlar bazasidan qanday ma’lumot olishi mumkinligini ko‘rsatadi:

Misol


Customer info will be listed here...

O‘zingiz sinab ko‘ring »


Misol tushuntirishi - HTML sahifa

Foydalanuvchi yuqoridagi ochiladigan ro‘yxatdan mijozni tanlaganda "showCustomer()" nomli funksiya bajariladi. Funksiya "onchange" hodisasi orqali ishga tushadi:

<!DOCTYPE html> <html> <head> <script> function showCustomer(str) { if (str=="")   {   document.getElementById("txtHint").innerHTML="";   return;   } if (window.XMLHttpRequest)   {// code for IE7+, Firefox, Chrome, Opera, Safari   xmlhttp=new XMLHttpRequest();   } else   {// code for IE6, IE5   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");   } xmlhttp.onreadystatechange=function()   {   if (this.readyState==4 && this.status==200)     {     document.getElementById("txtHint").innerHTML=this.responseText;     }   } xmlhttp.open("GET","getcustomer.asp?q="+str,true); xmlhttp.send(); } </script> </head <body> <form> <select name="customers" onchange="showCustomer(this.value)"> <option value="">Select a customer:</option> <option value="ALFKI">Alfreds Futterkiste</option> <option value="NORTS ">North/South</option> <option value="WOLZA">Wolski Zajazd</option> </select> </form> < <div id="txtHint">Customer info will be listed here...</div> </body> </html>

Manba kod tushuntirishi:

Agar hech qanday mijoz tanlanmagan bo‘lsa (str.length==0), funksiya txtHint joy egasining mazmunini tozalaydi va funksiyadan chiqadi.

Agar mijoz tanlangan bo‘lsa, showCustomer() funksiyasi quyidagilarni bajaradi:

  • XMLHttpRequest obyektini yaratish
  • Server javobi tayyor bo‘lganda bajariladigan funksiyani yaratish
  • So‘rovni serverdagi faylga yuborish
  • E’tibor bering, URL’ga (ochiladigan ro‘yxat mazmuni bilan) parametr (q) qo‘shiladi

ASP fayli

Yuqoridagi JavaScript chaqiradigan serverdagi sahifa — "getcustomer.asp" nomli ASP fayli.

"getcustomer.asp" faylidagi manba kod ma’lumotlar bazasiga so‘rov yuboradi va natijani HTML jadvalda qaytaradi:

<% response.expires=-1 sql="SELECT * FROM CUSTOMERS WHERE CUSTOMERID=" sql=sql & "'" & request.querystring("q") & "'" set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open(Server.Mappath("/datafolder/northwind.mdb")) set rs=Server.CreateObject("ADODB.recordset") rs.Open sql,conn response.write("<table>") do until rs.EOF   for each x in rs.Fields     response.write("<tr><td><b>" & x.name & "</b></td>")     response.write("<td>" & x.value & "</td></tr>")   next   rs.MoveNext loop response.write("</table>") %>

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!