AJAX介紹
其實AJAX應用的核心就是XMLHttpRequest,通過現象看本質,即使使用微軟的AJAX服務器控件最終也是需要這些的,只不過使用微軟AJAX服務器控件開發AJAX應用時我們不需要關心JS腳本的實現,只需關心業務邏輯就可以了,因而可以簡化開發和提高開發速度。AJAX的基礎是XHTML、CSS、DOM、JavaScript、XML及XMLHttpRequest。
正確使用AJAX技術可以改善用戶體驗,是用戶與服務器的交互更流暢,某些情況下還能減少服務器流量。在以前AJAX只是作為一種比較炫的技術為一些大型網站所使用,現今這個比雲計算還要流行了,至少雲計算更多地還是停留在人們的概念裡,而AJAX確確實實應用在WEB開發當中了。WEB開發人員的招聘都是言必精通AJAX技術。
下面分別講講在ASP.NET開發中可以供選擇的開發AJAX應用的方式:
采用純JavaScript實現
在武俠小說中絕頂高手飛花摘葉都可以傷人,在WEB開發領域真正的高手也可以無需借助任何其它庫就可以開發出AJAX應用。不適用任何第三方庫開發AJAX應用就需要自己區分浏覽器來實例化XMLHttpRequest對象實例,下面的代碼是一個簡單的調用AJAX的代碼:
view plaincopy to clipboardprint?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>獲取服務器時間的例子</title>
<mce:script language="javascript" type="text/javascript"><!--
var request=false;
//實例化XMLHttpRequest
function createXMLHttpRequest()
{
try
{
//下面的方法有可能拋出異常,表示當前浏覽器不支持此方法
request=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e1)//當通過上面的方法實例XMLHttpRequest發生異常
{
try
{
//下面的方法有可能拋出異常,表示當前浏覽器不支持此方法
request=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e2)//當通過上面的方法實例XMLHttpRequest發生異常
{
request=false;
}
}
//當上面的方法都不能實例化XMLHttpRequest時,表示非IE浏覽器
if(!request&&typeof XMLHttpRequest!=’undefined’)
{
//非IE浏覽器實例化XMLHttpRequest的方法
request=new XMLHttpRequest();
}
}
//發送客戶端請求的方法
function getServerTime(format)
{
//調用上面的方法實例化XMLHttpRequest
createXMLHttpRequest();
//要請求的URL地址,注意escape是javascript中的方法
//用於對特殊字符進行轉義
var url="ServerTime.aspx?format="+escape(format);
//alert(url);//可以通過這種方法查看服務器的返回結果
//通過GET方式打開請求,第三個參數true表示異步發送請求,false則為同步
request.open("GET",url,true);
//當request的等待狀態發生變化時要執行的客戶端方法
request.onreadystatechange=update;//update是客戶端的javascript方法
//因為在請求的url中已經附帶了參數,所以這裡的參數是null
//表示不再發送額外的數據
request.send(null);
}
//當接收到服務器的響應之後執行的客戶端方法
function update()
{
if(request.readyState==4)
{
//alert(request.responseText);//查看服務器響應結果
document.getElementById("time").innerHTML=request.responseText;
}
}
// --></mce:script>
</head>
<body>
<table border="0">
<tr>
<td>服務器時間</td><td><div id="time"></div></td>
</tr>
<tr>
&n