บทช่วยสอน ASP

ASP HOME

กวดวิชา WP

แนะนำหน้าเว็บ มีดโกนหน้าเว็บ เค้าโครงหน้าเว็บ โฟลเดอร์หน้าเว็บ หน้าเว็บทั่วโลก แบบฟอร์มหน้าเว็บ วัตถุหน้าเว็บ ไฟล์หน้าเว็บ ฐานข้อมูลหน้าเว็บ ผู้ช่วยหน้าเว็บ หน้าเว็บ WebGrid แผนภูมิหน้าเว็บ อีเมลหน้าเว็บ ความปลอดภัยของหน้าเว็บ เผยแพร่หน้าเว็บ ตัวอย่างหน้าเว็บ ชั้นเรียนของหน้าเว็บ

มีดโกน ASP.NET

แนะนำมีดโกน มีดโกนไวยากรณ์ มีดโกน C# ตัวแปร มีดโกน C# ลูป มีดโกน C# Logic ตัวแปรมีดโกน VB มีดโกน VB Loops มีดโกน VB Logic

ASP Classic

แนะนำ ASP ไวยากรณ์ ASP ตัวแปร ASP ขั้นตอน ASP เงื่อนไข ASP ASP วนรอบ แบบฟอร์ม ASP คุกกี้ ASP เซสชัน ASP แอปพลิเคชัน ASP ASP #รวม ASP Global.asa ASP AJAX อีเมล ASP ตัวอย่าง ASP

การอ้างอิง ASP

ฟังก์ชัน ASP VB คีย์เวิร์ด ASP VB การตอบสนอง ASP คำขอ ASP แอปพลิเคชัน ASP เซสชัน ASP เซิร์ฟเวอร์ ASP ข้อผิดพลาด ASP ASP FileSystem ASP TextStream ไดรฟ์ ASP ไฟล์ ASP โฟลเดอร์ ASP พจนานุกรม ASP ASP AdRotator ASP BrowserCap การเชื่อมโยงเนื้อหา ASP ตัวหมุนเนื้อหา ASP ASP Quick Ref

กวดวิชา ADO

แนะนำ ADO ADO Connect ชุดระเบียน ADO จอแสดงผล ADO แบบสอบถาม ADO ADO Sort เพิ่ม ADO ADO Update ADO ลบ สาธิต ADO ADO เร่งความเร็ว

วัตถุ ADO

คำสั่ง ADO การเชื่อมต่อ ADO ข้อผิดพลาด ADO ADO Field พารามิเตอร์ ADO ADO พร็อพเพอร์ตี้ บันทึก ADO ชุดระเบียน ADO ADO สตรีม ประเภทข้อมูล ADO

ASP AJAX

AJAX เป็นเรื่องเกี่ยวกับการอัปเดตบางส่วนของหน้าเว็บโดยไม่ต้องโหลดซ้ำทั้งหน้า


AJAX คืออะไร?

AJAX = JavaScript และ XML แบบอะซิงโครนัส

AJAX เป็นเทคนิคสำหรับการสร้างหน้าเว็บที่รวดเร็วและเป็นไดนามิก

AJAX อนุญาตให้อัปเดตหน้าเว็บแบบอะซิงโครนัสโดยการแลกเปลี่ยนข้อมูลจำนวนเล็กน้อยกับเซิร์ฟเวอร์เบื้องหลัง ซึ่งหมายความว่าสามารถอัปเดตบางส่วนของหน้าเว็บได้โดยไม่ต้องโหลดซ้ำทั้งหน้า

หน้าเว็บแบบคลาสสิก (ซึ่งไม่ได้ใช้ AJAX) ต้องโหลดซ้ำทั้งหน้าหากเนื้อหาควรเปลี่ยนแปลง

ตัวอย่างแอปพลิเคชันที่ใช้ AJAX: แท็บ Google Maps, Gmail, Youtube และ Facebook


AJAX ทำงานอย่างไร

AJAX


AJAX เป็นไปตามมาตรฐานอินเทอร์เน็ต

AJAX อิงตามมาตรฐานอินเทอร์เน็ต และใช้ชุดค่าผสมของ:

  • วัตถุ XMLHttpRequest (เพื่อแลกเปลี่ยนข้อมูลแบบอะซิงโครนัสกับเซิร์ฟเวอร์)
  • JavaScript/DOM (เพื่อแสดง/โต้ตอบกับข้อมูล)
  • CSS (เพื่อจัดรูปแบบข้อมูล)
  • XML (มักใช้เป็นรูปแบบการถ่ายโอนข้อมูล)

แอปพลิเคชัน AJAX นั้นไม่ขึ้นกับเบราว์เซอร์และแพลตฟอร์ม!



Google Suggest

AJAX ได้รับความนิยมในปี 2548 โดย Google ด้วย Google Suggest

Google Suggest ใช้ AJAX เพื่อสร้างอินเทอร์เฟซเว็บแบบไดนามิก: เมื่อคุณเริ่มพิมพ์ในช่องค้นหาของ Google JavaScript จะส่งจดหมายไปยังเซิร์ฟเวอร์และเซิร์ฟเวอร์จะส่งคืนรายการคำแนะนำ


เริ่มใช้ AJAX วันนี้

ในบทช่วยสอน ASP ของเรา เราจะสาธิตวิธีที่ AJAX สามารถอัปเดตส่วนต่างๆ ของหน้าเว็บโดยไม่ต้องโหลดซ้ำทั้งหน้า สคริปต์เซิร์ฟเวอร์จะถูกเขียนใน ASP

หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ AJAX โปรดไปที่ บทช่วย สอน AJAXของ เรา

ตัวอย่าง AJAX ASP

ตัวอย่างต่อไปนี้จะสาธิตวิธีที่หน้าเว็บสามารถสื่อสารกับเว็บเซิร์ฟเวอร์ในขณะที่ผู้ใช้พิมพ์อักขระในช่องป้อนข้อมูล:

ตัวอย่าง

Start typing a name in the input field below:

First name:

Suggestions:



ตัวอย่างที่อธิบาย

ในตัวอย่างข้างต้น เมื่อผู้ใช้พิมพ์อักขระในช่องป้อนข้อมูล ฟังก์ชันที่เรียกว่า "showHint()" จะถูกดำเนินการ

ฟังก์ชันนี้ทริกเกอร์โดยเหตุการณ์ onkeyup

นี่คือรหัส HTML:

ตัวอย่าง

<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>

คำอธิบายรหัส:

ขั้นแรก ให้ตรวจสอบว่าช่องป้อนข้อมูลว่างเปล่าหรือไม่ (str.length == 0) หากใช่ ให้ล้างเนื้อหาของตัวยึดตำแหน่ง txtHint และออกจากฟังก์ชัน

อย่างไรก็ตาม หากช่องป้อนข้อมูลไม่ว่างเปล่า ให้ทำดังต่อไปนี้:

  • สร้างวัตถุ XMLHttpRequest
  • สร้างฟังก์ชันที่จะดำเนินการเมื่อการตอบสนองของเซิร์ฟเวอร์พร้อม
  • ส่งคำขอไปยังไฟล์ ASP (gethint.asp) บนเซิร์ฟเวอร์
  • สังเกตว่ามีการเพิ่มพารามิเตอร์ q gethint.asp?q="+str
  • ตัวแปร str เก็บเนื้อหาของช่องใส่

ไฟล์ ASP - "gethint.asp"

ไฟล์ ASP จะตรวจสอบอาร์เรย์ของชื่อ และส่งคืนชื่อที่ตรงกันไปยังเบราว์เซอร์:

<%
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 สามารถใช้สำหรับการสื่อสารแบบโต้ตอบกับฐานข้อมูล


ตัวอย่างฐานข้อมูล AJAX

ตัวอย่างต่อไปนี้จะแสดงให้เห็นว่าหน้าเว็บสามารถดึงข้อมูลจากฐานข้อมูลด้วย AJAX ได้อย่างไร:

ตัวอย่าง


Customer info will be listed here...


ตัวอย่างที่อธิบาย - หน้า HTML

เมื่อผู้ใช้เลือกลูกค้าในรายการดรอปดาวน์ด้านบน ฟังก์ชันที่เรียกว่า "showCustomer()" จะถูกดำเนินการ ฟังก์ชั่นถูกเรียกโดยเหตุการณ์ "onchange":

<!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>

คำอธิบายซอร์สโค้ด:

หากไม่มีการเลือกลูกค้า (str.length==0) ฟังก์ชันจะล้างเนื้อหาของตัวยึดตำแหน่ง txtHint และออกจากฟังก์ชัน

หากลูกค้าถูกเลือก ฟังก์ชัน showCustomer() จะดำเนินการดังต่อไปนี้:

  • สร้างวัตถุ XMLHttpRequest
  • สร้างฟังก์ชันที่จะดำเนินการเมื่อการตอบสนองของเซิร์ฟเวอร์พร้อม
  • ส่งคำขอไปยังไฟล์บนเซิร์ฟเวอร์
  • สังเกตว่ามีการเพิ่มพารามิเตอร์ (q) ลงใน URL (พร้อมเนื้อหาของรายการแบบเลื่อนลง)

ไฟล์ ASP

หน้าบนเซิร์ฟเวอร์ที่เรียกใช้โดย JavaScript ด้านบนเป็นไฟล์ ASP ชื่อ "getcustomer.asp"

ซอร์สโค้ดใน "getcustomer.asp" เรียกใช้แบบสอบถามกับฐานข้อมูล และส่งกลับผลลัพธ์ในตาราง HTML:

<%
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>")
%>