盡管AJax是個相對新生的術語,但其背後的技術卻並不新穎。隨著XMLHttpRequest對象在大多數浏覽器中的實現,以及GMail和Google Maps的出現激發了軟件開發者重新考慮如何構建網頁的靈感。我們從基礎開始認識AJax,一種顛覆性的技術,其改變了Web應用程序的開發和應用方式,使得交互性頁面和網站處於目前網絡潮流的最前沿。
當請求被發送到浏覽器後,其所具有的改變網頁內容的功能已經存在許多年了-使用Javascript腳本改變iframe's src屬性是技術之一。
XMLHttpRequest對象
XMLHttpRequest對象使AJax的出現成為可能,它產生異步請求,並決定如何處理結果。在大多數浏覽器中,我們使用如下代碼來創建對象:
var XMLhttp = false;
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
alert("cannot create object");
}
不幸的是,上文中所提到的“大多數浏覽器”並不包括IE,因此對於微軟的浏覽器,我們需要采用一種特殊的方法創建對象。值得注意的是,根據MSXML解析器的不同版本,需要分別編寫兩種代碼。
var XMLhttp = false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
XMLhttp = false;
}
因此,結合上述兩個代碼片段,我們得到了以下適合所有主流浏覽器創建XMLHttpRequest對象的代碼:
var XMLhttp = false;
try {
xmlhttp = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
XMLhttp = false;
}
}
}