Veze, linkovi
Kompjuter biblioteka
Korpa

Preporučujemo

40 algoritama koje bi svaki programer trebalo da zna

40 algoritama koje bi svaki programer trebalo da zna

Popust cena: 1840 rsd

C# 2008 od početnika do profesionalca

C# 2008 od početnika do profesionalca

Popust cena: 1760 rsd

Vaša prva Ajax aplikacija - drugi deo

XMLHttpRequest objekat

Pre nego što pošaljete podatke serveru, mi treba da vam objasnimo tri važne karakteristike XMLHttpRequest objekta.
onreadystatechange parametar

Nakon slanja zahteva serveru, treba nam funkcija koja može da primi podatke koje je vratio server.
onreadystatechange funkcija skladišti funkcije koje će obraditi odgovor servera. Sledeći kod definiše praznu funkciju i istovremeno postavlja onreadystatechange funkciju:

xmlHttp.onreadystatechange=function()
{
// Ovde ćemo upisati neki kod

}

readyState funkcija

readyState funkcija drži status odgovora servera. Svaki put kada se readyState promeni, onreadystatechange funkcija će biti izvršena.

Evo mogućih vrednosti za readyState funkciju:

Stanje

Opis

0

Zahtev se ne inicijalizuje

1

Zahtev se podešava

2

Zahtev je poslat

3

Zahtev se obrađuje

4

Zahtev je završen

Mi ćemo da dodamo If tvrdnju onreadystatechange funkciji kako bismo testirali da li je naš odgovor završen (to znači da možemo da dobijemo naše podatke):

xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
  {
// Uzima podatke iz serverovog odgovora
}

}

responseText funkcija

Podaci poslati nazad sa servera mogu da se dobiju pomoću responseText funkcije.
U našem kodu, mi ćemo odrediti vrednost našeg "time" input polja tako da bude jednako sa responseText:

xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
  {
  document.myForm.time.value=xmlHttp.responseText;
  }

}

U nastavku teksta saznaćete kako da tražite podatke od servera!

AJAX - Slanje zahteva serveru

Da bismo poslali zahtev serveru, mi koristimo open() metod i send() metod.

open() metod sadrži tri argumenta. Prvi argument definiše koji metod da koristite kada šaljete zahtev (GET ili POST). Drugi argument specifikuje URL skripta servera (server-side). Treći argument specifikuje da zahtev treba da se obradi asinhrono. send() metod šalje zahtev serveru. Ako pretpostavimo da se HTML i ASP fajl nalaze u istom direktorijumu, kod bi bio:

xmlHttp.open("GET","time.asp",true);

xmlHttp.send(null);

Sada moramo da odlučimo kada treba da se izvrši AJAX funkcija. Mi ćemo pustiti funkciju da radi u "pozadini" kada korisnik bude kucao nešto u username tekstualno polje:

<form name="myForm">
Name: <input type="text"
onkeyup="ajaxFunction();" name="username" />
Time: <input type="text" name="time" />

</form>

Naš ažurirani AJAX-osposobljeni "testAjax.htm" fajl sada izgleda ovako:

<html>
<body>
<script type="text/javascript">
function ajaxFunction()
{
var xmlHttp;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    try
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    catch (e)
      {
      alert("Your browser does not support AJAX!");
      return false;
      }
    }
  }
  xmlHttp.onreadystatechange=function()
     {
    if(xmlHttp.readyState==4)
      {
      document.myForm.time.value=xmlHttp.responseText;
      }
    }
  xmlHttp.open("GET","time.asp",true);
  xmlHttp.send(null);
  }
</script>
<form name="myForm">
Name: <input type="text"
onkeyup="ajaxFunction();" name="username" />
Time: <input type="text" name="time" />
</form>
</body>

</html>

U nastavku teksta kompletiraćemo našu AJAX aplikaciju sa "time.asp" skriptom.

AJAX - Serverski ASP Skript

Sada ćemo da kreiramo skript koji prikazuje aktuelno vreme servera.

responseText funkcija (objašnjena u prethodnom delu teksta) će da skladišti podatke koje je server vratio. Mi ovde želimo da pošaljemo nazad aktuelno vreme. Kod u "time.asp" izgleda ovako:

<%
response.expires=-1
response.write(time)
%>

Napomena: Expires funkcija određuje koliko dugo (u minutama) će stranica biti keširana u pretraživaču pre nego što istekne. Ako se korisnik vrati na istu stranicu pre nego što ona istekne, keširana verzija će biti prikazana.

Response.Expires=-1 znači da stranica nikada neće biti keširana.

Pokrenite AJAX aplikaciju

Sada možete da isprobate AJAX aplikaciju tako što ćete ukucati neki tekst u Name tekstualno polje, a onda kliknite unutar Time tekstualnog polja.

Time tekstualno polje će da prikaže vreme servera iz "time.asp" fajla bez učitavanja stranice!

 

         
Twitter Facebook Linkedin Pinterest Email
         

Budite prvi koji će ostaviti komentar.

Ostavite komentar Ostavite komentar

 

 

 

Veze, linkovi
Linkedin Twitter Facebook
 
     
 
© Sva prava pridržana, Kompjuter biblioteka, Beograd, Obalskih radnika 4a, Telefon: +381 11 252 0 272