AJAX XMLHttpRequest

วัตถุ XMLHttpRequest ทำให้ AJAX มีความเป็นไปได้

XMLHttpRequest

วัตถุ XMLHttpRequest คือส่วนสำคัญของ AJAX

วัตถุ XMLHttpRequest นี้มีการใช้งานได้ตั้งแต่ Internet Explorer 5.5 และตั้งแต่ กรกฎาคม 2000 แต่ก่อนหน้านี้นั้น วัตถุนี้ยังไม่ได้รับความสนใจอย่างเต็มที่จนกระทั่งปี 2005 ที่มีการอภิปราย AJAX และ Web 2.0

สร้าง XMLHttpRequest วัตถุ

แต่ละเวอร์ชั่นบราวเซอร์ใช้วิธีที่แตกต่างกันเพื่อสร้าง XMLHttpRequest วัตถุ

Internet Explorer ใช้ ActiveXObject

เวอร์ชันที่ไม่เดียวกันของเวอร์ชั่นแบบที่ใช้งานได้เพียงเดียว XMLHttpRequest เป็นส่วนของ JavaScript ภาษาไว้ใช้ตัวตน

เพื่อรับมือกับปัญหานี้ คุณสามารถใช้โค้ดนี้

var XMLHttp=null
if (window.XMLHttpRequest)
  {
  XMLHttp=new XMLHttpRequest()
  }
else if (window.ActiveXObject)
  {
  XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
  }

代码解释:

  1. สร้างแรกๆ วัตถุที่ใช้งานแบบ XMLHttpRequest XMLHttp 变量。把它的值设置为 null。
  2. หลังจากนั้นทดสอบ window.XMLHttpRequest วัตถุนี้สามารถใช้ได้ใน Firefox, Mozilla, Opera และ Safari ในเวอร์ชันล่าสุด
  3. ถ้ามีความสามารถ ใช้มันเพื่อสร้างวัตถุใหม่XMLHttp=new XMLHttpRequest()
  4. ถ้าไม่สามารถใช้ได้ ตรวจสอบ window.ActiveXObject เป็นไปได้ที่จะใช้ ใน Internet Explorer version 5.5 และเวอร์ชันที่สูงกว่า
  5. ถ้ามีความสามารถ ใช้มันเพื่อสร้างวัตถุใหม่XMLHttp=new ActiveXObject()

ตัวอย่างที่ถูกปรับปรุง

บางนักพัฒนาโปรแกรมชื่นชอบใช้เวอร์ชัน XMLHttpRequest ที่ใหม่และเร็วที่สุด

ดังนั้นตัวอย่างดังกล่าวพยายามโหลดเวอร์ชันของ "Msxml2.XMLHTTP" ที่เปิดใช้งานใน Internet Explorer 6 หากไม่สามารถโหลดได้ ก็กลับไปใช้ "Microsoft.XMLHTTP" ที่สามารถใช้งานได้ใน Internet Explorer 5.5 และเวอร์ชันหลัง

function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 // Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

代码解释:

  1. 首先创建用作 XMLHttpRequest 对象的 XMLHttp 变量。把它的值设置为 null。
  2. 按照 web 标准创建对象 (Mozilla, Opera 以及 Safari):XMLHttp=new XMLHttpRequest()
  3. 按照微软的方式创建对象,在 Internet Explorer 6 及更高的版本可用:XMLHttp=new ActiveXObject("Msxml2.XMLHTTP")
  4. 如果捕获错误,则尝试更老的方法 (Internet Explorer 5.5) :XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")

更多有关 XMLHttpRequest 对象的信息

หากคุณต้องการอ่านเนื้อหาเกี่ยวกับ XMLHttpRequest มากกว่านี้ โปรดเข้าเว็บไซต์ของเรา ตัวเรียน AJAX