ASP - AJAX z ASP
- Poprzednia strona Wprowadzenie do AJAX
- Następna strona Baza danych AJAX
AJAX jest używany do tworzenia bardziej dynamicznych aplikacji.
Przykład AJAX ASP
Poniższy przykład pokazuje, jak strona internetowa komunikuje się z serwerem, gdy użytkownik wpisuje znaki w polu wprowadzania:
Przykład
Proszę wpisać litery (A - Z) w poniższym polu wprowadzania:
Sugerujemy:
Przykład wytłumaczony - strona HTML
Kiedy użytkownik wpisuje znaki w powyższym polu wprowadzania, uruchamia się funkcja "showHint()". Funkcja ta jest wywoływana przez wydarzenie "onkeyup":
<!DOCTYPE html> <html> <head> <script> function showHint(str) { if (str.length==0) { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) {// Kod dla IE7+, Firefox, Chrome, Opera, Safari} xmlhttp=new XMLHttpRequest(); } else {// Kod dla IE6, IE5} xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","gethint.asp?q="+str,true); xmlhttp.send(); } </script> </head <body> <p><b>Proszę wpisać litery angielskie w polu tekstowym:</b></p> <form> Imię: <input type="text" onkeyup="showHint(this.value)" size="20"> </form> <p>Sugestie: <span id="txtHint"></span></p> </body> </html>
Wyjaśnienie kodu źródłowego:
Jeśli pole tekstowe jest puste (str.length==0), funkcja wyczyści zawartość占位符 txtHint i wyjdzie z funkcji.
Jeśli pole tekstowe nie jest puste, funkcja showHint() wykona następujące kroki:
- Tworzenie obiektu XMLHttpRequest
- Tworzenie funkcji do wykonania po przygotowaniu odpowiedzi serwera
- Wysyłanie żądania do pliku na serwerze
- Proszę zauważyć, że parametr (q) dodany do końca adresu URL (zawiera zawartość pola tekstowego)
Plik ASP
To strona serwerowa wywoływana przez JavaScript o nazwie "gethint.asp" to plik ASP.
"gethint.asp" zawiera kod źródłowy, który sprawdza tablicę nazw i zwraca odpowiednią nazwę do przeglądarki:
<% response.expires=-1 dim a(30) 'Wypełnij tablicę nazw 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" 'Pobierz parametr q z URL q=ucase(request.querystring("q")) 'Jeśli długość q>0, znajdź wszystkie wskazówki w tablicy 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 'Jeśli nie znaleziono wskazówki, wyświetl "brak sugestii" 'lub wyświetl poprawne wartości if hint="" then response.write("brak sugestii") else response.write(hint) end if %>
Wyjaśnienie kodu źródłowego:
Jeśli JavaScript wysłał jakikolwiek tekst (czyli strlen($q) > 0), nastąpi:
- Znajdź pasujące znaki z JavaScript
- Jeśli nie znajdziesz pasujących wyników, ustaw ciąg odpowiedzi na "no suggestion"
- Jeśli znajdziesz jedną lub kilka pasujących nazw, ustaw ciąg odpowiedzi na wszystkie nazwy
- Wysyłaj odpowiedź do占位符 "txtHint"
- Poprzednia strona Wprowadzenie do AJAX
- Następna strona Baza danych AJAX