AJAX با ASP (AJAX ASP)
در آژاکس (AJAX)، صفحه بدون رفرش با سرور حرف می زند. مثل پیام رسان که هم زمان تایپ می کنی و پیشنهاد می آید. اینجا نسخه کلاسیک ASP را می بینیم.
نمونه AJAX با ASP
کاربر نام را تایپ می کند. سپس جاوااسکریپت (JavaScript) با XMLHttpRequest درخواست می فرستد. آنگاه فایل ASP پاسخ می دهد.
<p><b>Start typing a name in the input field below:</b></p>
<form action="javascript:void(0)">
First name: <input type="text" id="txt1" onkeyup="showHint(this.value);" />
Suggestions: <span id="txtHint"></span>
</form>
<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>
توضیح گام به گام
- رویداد onkeyup با هر تایپ فعال می شود.
- اگر ورودی خالی بود، پیشنهاد پاک می شود.
- وگرنه، درخواست GET به gethint.asp می رود.
- اگر status برابر 200 بود، پاسخ نمایش می شود.
نکته: status یعنی وضعیت پاسخ سرور. مقدار 200 یعنی «همه چیز اوکی است».
فایل ASP: gethint.asp
این اسکریپت VBScript یک آرایه نام دارد. سپس با q فیلتر می کند و نام های مناسب را برمی گرداند.
<%
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 result
If hint = "" Then
Response.Write("no suggestion")
Else
Response.Write(hint)
End If
%>
پیوندهای داخلی
برای تکمیل مسیر، بخش AJAX با PHP را ببین. همچنین فایل XML (AJAX XML File) مفید است. اگر نیاز داشتی، AJAX با ASP را به عنوان مرجع نگه دار.
جمع بندی سریع
- onkeyup ورودی را لحظه ای می خواند.
- XMLHttpRequest درخواست GET می فرستد.
- ASP نام ها را فیلتر و برمی گرداند.
- status 200 یعنی پاسخ معتبر است.