Ajax 技術現在好多人懂了,但用的時候,代碼五花八門,不易理解和維護。現在已經有一些 Ajax 架構,做的很不錯,例如較早的 xAjax(PHP下的),還有現在的 jQuery、Dhtml 等。但因為架構要考慮通用性和相容性等,實現起來疊床架屋的,比較複雜。對於我們一些小應用來說,用起來有大材小用、打炮大蚊子的感覺。
其實 Ajax 被大家搞的神秘了 - 看看書店裡那些千篇一律的、煞有介事的專門講 Ajax 的書吧。
以下代碼把通過 get 方式實現 Ajax 請求的方法,構造成 2 個函數(不打算用類來實現),已經可以滿足日常的簡單應用,也幾乎體現了 Ajax 的全部精髓。用的時候,給幾個參數,調用函數就可以了。
function getAjax(httpurl,requests,div)
{
if (typeof(httpurl,requests,div) == 'undefined')
{
return false;
}
var url = httpurl+requests;
var show = document.getElementById(div);
var ajax = InitAjax();
ajax.open("GET", url, true);
ajax.onreadystatechange = function() {
if (ajax.readyState == 4 && ajax.status == 200) {
show.innerHTML = ajax.responseText;
}
}
ajax.send(null);
}
function InitAjax()
{
var ajax=false;
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
ajax = false;
}
}
if (!ajax && typeof XMLHttpRequest!='undefined') {
ajax = new XMLHttpRequest();
}
return ajax;
}
張慶(網眼) 2008-11-25
來自“網眼視界”:http://blog.why100000.com
“十萬個為什麼”電腦學習網:http://www.why100000.com