ด้วยการผสมผสานระหว่าง xmlHttp และ ASP เราจึงสามารถทำการเรียกหน้าเว็บแบบอะซิงโครนัสได้อย่างง่ายดาย
รหัสมีดังนี้:
1. สร้าง Display.asp ใหม่ (นี่คือหน้าจอแสดงผลส่วนหน้า)
ให้ความสนใจกับคุณลักษณะ 4 ประการของ xmlhttp.readyState
1:กำลังโหลด;2:โหลดแล้ว;3:โต้ตอบ;4:เสร็จสมบูรณ์แล้ว
<%@ ภาษา=VBScript %>
<HTML>
<หัว>
<ชื่อเมตา=เนื้อหาเครื่องกำเนิดไฟฟ้า=Microsoft Visual Studio 6.0>
</HEAD>
<ภาษาสคริปต์=จาวาสคริปต์>
xmlhttp = ActiveXObject ใหม่ (Msxml2.XMLHTTP);
ฟังก์ชั่น fnDo(ID)
-
var xmlDom = ActiveXObject ใหม่ (Msxml2.DOMDocument);
var strURL = GetInfo.asp?ID= + รหัส;
xmlhttp.Open(POST,strURL, จริง);
xmlhttp.onreadystatechange = fnRun;
xmlhttp.Send(xmlDom);
divTest.innerHTML = กำลังโหลด...
-
//------------------------------------------------ --------
ฟังก์ชั่น fnRun()
-
สถานะ var = xmlhttp.readyState;
var xmlDom = ActiveXObject ใหม่ (Msxml2.DOMDocument);
ถ้า (สถานะ == 4)
-
xmlDom.loadXML(xmlhttp.responseXML.xml);
//alert(xmlDom.documentElement.selectSingleNode(//objXML).text)
var getInfo = xmlDom.documentElement.selectSingleNode(//objXML).text;
divTest.innerHTML = getInfo
-
-
</สคริปต์>
<ร่างกาย>
<ประเภทอินพุต=ข้อความ id=txtInput>
<ประเภทอินพุต=ค่าปุ่ม=การเรียกแบบอะซิงโครนัส onclick=fnDo(document.all.txtInput.value)>
<DIV id=divTest></DIV>
<พี> </พี>
</ร่างกาย>
</HTML>
2. สร้าง GetInfo.asp (นี่คือหน้าการประมวลผลเบื้องหลัง)
-
Dim sID,objResult
sID = Trim (คำขอ (ID))
'ไอดี = 28
ตั้งค่า objResult = Server.CreateObject(MSXML2.DOMDocument)
objResult.loadXML (<objXML></objXML>)
'************************************************ * ************
'************************************************ * ************
objResult.selectSingleNode(objXML).text = รับ: & sID
Response.ContentType = ข้อความ/xml
objResult.save (ตอบกลับ)
การตอบสนองสิ้นสุด
ตั้ง objSch = ไม่มีเลย
ตั้งค่า objResult = ไม่มีเลย
-
3. เรียกใช้หน้า Display.asp ป้อนเนื้อหาในกล่องข้อความ คลิกปุ่ม คุณจะเห็นข้อความแจ้งให้โหลด จากนั้นรับเนื้อหาในกล่องข้อความโดยไม่ต้องรีเฟรชหน้า แน่นอน คุณยังสามารถคำนวณที่ซับซ้อนโดยอิงตามพารามิเตอร์ที่ส่งในหน้า GetInfo.asp แล้วส่งกลับผลลัพธ์