ajax.js
//聲明XMLHttpRequest對象
var xmlHttp;
//該方法可以複製被使用
//建立XMLHttpRequest對象
funciton createXMLHttp()
{
if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();//mozilla瀏覽器
}
else if(window.ActiveXObject)
{
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHttp");//舊IE版本
}catch(e){}
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHttp");//新IE版本
}catch(e){}
}
if(!xmlHttp)
{
window.alert("對不起!無法建立XMLHttpRequest對象");
return false;
}
}
//執行檢查使用者的回呼函數
//資料發送給伺服器之後,會使用改函數檢查是
//否發送成功
function checkUserName()
{
if(xmlHttp,readyState == 4)//判斷對象狀態
{
if(xmlHttp.status == 200)//資訊成功返回,開始處理資訊
{
//擷取伺服器發來的傳回值,根據情況改變頁面某些元素
//responseText適合小量資訊,responseXML適合大量資訊
if(xmlHttp.responseText="true")//對應doRequest.aspx中的Response.Write("true");
{
document.getElementById("imageName").src="image/true.gif";
//改變頁面上一圖片檔案
}
else
{
document.getElementById("imageName").src="image/false.gif";
}
}
}
}
//檢查使用者名稱是否存在
//onkeyup = "CheckName(document.getElementById('userName'))"
function CheckName(userName)
{
createXMLHttp();//建立XMLHttpRequest對象
var url="doRequest.aspx?name ="+userName;//寫法很以往的頁面提交沒區別
xmlHttp.open("GET",url,true);//這個函數時間無重新整理資料提交
xmlHttp.onreadystatechange = checkUserName; //回呼函數,該函數在send方法
//提交資料之後才被執行
xmlHttp.send(null);//以上步驟完成之後提交資料
}
doRequest.aspx //幕後處理請求的頁面,java中他可以是jspservlet
//擷取發送過來參數
String userName = Request.QueryString["name"].Tostring();
/**////對userName進行判斷看是否在資料庫中
//在的話,返回“true”資料給ajax頁面
Response.Write("true");
//否則
Response.Write("false");