為(wèi)了讓各為(wèi)能(néng)夠了解什麽是AJAX,以下是一個AJAX的手工(gōng)範例(即不引用(yòng)任何的Library或AJAX framework),此範例頗為(wèi)精(jīng)要易懂,其作(zuò)用(yòng)主要是透過Client 端的Browser來即時監控Web 服務(wù)器資源或效能(néng)變化,各位隻要做過一遍範例就能(néng)夠了解AJAX在網頁(yè)開發上是多(duō)麽具(jù)有(yǒu)威力了。 先來看看效果圖:
本範例是一個簡單的AJAX例子,但麻雀雖小(xiǎo)五髒俱全,可(kě)由此窺見原始AJAX非同技(jì )術是如何運作(zuò)。不需要安(ān)裝(zhuāng)任何特殊的AJAX套件,步驟說明如下:
一 建立Web項目 首先在VS 2005(或VS.NET 2003)建立一個普通的WEB項目,或者您沒有(yǒu)VS開發工(gōng)具(jù),直接用(yòng)記事本建立也行。
二 建立Client端頁(yè)面 在Web專案中(zhōng)加入一個Client端頁(yè)面Client.htm,并将此頁(yè)面設定為(wèi)起始頁(yè),這個頁(yè)面會向Web伺服器網頁(yè)發出非同步呼叫請求,并且将伺服器回傳資料更新(xīn)到網頁(yè)元素中(zhōng),代碼如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <script language="javascript"> var XmlHttp=new ActiveXObject("Microsoft.XMLhttp"); function sendAJAX() { XmlHttp.Open("POST","Server.aspx",true); XmlHttp.send(null); XmlHttp.onreadystatechange=ServerProcess; } function ServerProcess() { if (XmlHttp.readystate==4 || XmlHttp.readystate=='complete') { document.getElementById('nameList').innerHTML =XmlHttp.responsetext; } } setInterval('sendAJAX()',1000); </script> </head> <body> <div id="nameList"></div> </body> </html>
三 建立Server端處理(lǐ)程式 另外在專案中(zhōng)加入一個Server.aspx網頁(yè)(含.cs),Server.aspx不需要添加任何代碼。 Server.aspx.cs 程序碼如下:
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Diagnostics; public partial class Server : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { PerformanceCounter myMemory = new PerformanceCounter(); myMemory.CategoryName = "Memory"; myMemory.CounterName = "Available KBytes"; string txtResult = "-->服務(wù)器可(kě)以用(yòng)記憶體(tǐ)大小(xiǎo):" + myMemory.NextValue().ToString() + "KB"; Response.Write(DateTime.Now.ToLongTimeString() + txtResult); } }
說明: 首先記得引用(yòng)System.Diagnostics 命名(míng)空間,因為(wèi)PerformanceCounter 必須使用(yòng)該命名(míng)空間, 而PerformanceCounter類别可(kě)讓您監控Windows 作(zuò)業系統的各種效能(néng)計數器,在此透過它取得服務(wù)器每秒(miǎo)可(kě)用(yòng)記憶體(tǐ)大小(xiǎo)的變化情形。
執行Client.htm頁(yè)面,大約會花(huā)5秒(miǎo)啓始Performance-Counter物(wù)件,之後透過AJAX便可(kě)每秒(miǎo)獲得Server可(kě)用(yòng)記憶 體(tǐ)變化情形。當然用(yòng)Server Side的Timer也可(kě)以實現,但那種方式會造成Server的Loading爆增,人多(duō)的話還可(kě)能(néng)搞垮你的Server,但AJAX 就具(jù)有(yǒu)極佳的彈性與靈巧,透過AJAX您可(kě)以即時偵測到資料庫或事件的變化即時顯現在網頁(yè)上。
|