Ajax異步檢查用戶名是否存在
在任何網(wǎng)站注冊(cè)用戶的時(shí)候,都會(huì)檢查用戶是否已經(jīng)存在。很久以前的處理方式是將所有數(shù)據(jù)提交到服務(wù)器端進(jìn)行驗(yàn)證,很顯然這種方式的用戶體驗(yàn)很不好;后來有了Ajax,有了異步交互,當(dāng)用戶輸完用戶名繼續(xù)填寫其他信息的時(shí)候,Ajax就將信息發(fā)到了服務(wù)器去檢查該用戶名是否已經(jīng)被注冊(cè)了,這樣如果用戶名已經(jīng)存在,不用等用戶將所有數(shù)據(jù)都提交就可以給出提示。采用這種方式大大改善了用戶體驗(yàn),今天就一起跟大家聊聊這種交互方式。
下面是用JS獲取用戶Id然后將其發(fā)送給user_validate.jsp頁面,然后通過callback方法接收頁面返回的消息并通知用戶。
function validate(field) {
if (trim(field.value).length != 0) {
//創(chuàng)建Ajax核心對(duì)象XMLHttpRequest
createXMLHttpRequest();
var url = "user_validate.jsp?userId=" + trim(field.value) + "&time=" + new Date().getTime();
//設(shè)置請(qǐng)求方式為GET,設(shè)置請(qǐng)求的URL,設(shè)置為異步提交
xmlHttp.open("GET", url, true);
//將方法地址復(fù)制給onreadystatechange屬性
//類似于電話號(hào)碼
xmlHttp.onreadystatechange=callback;
//將設(shè)置信息發(fā)送到Ajax引擎
xmlHttp.send(null);
} else {
document.getElementById("spanUserId").innerHTML = "";
}
}
function callback() {
//alert(xmlHttp.readyState);
//Ajax引擎狀態(tài)為成功
if (xmlHttp.readyState == 4) {
//HTTP協(xié)議狀態(tài)為成功
if (xmlHttp.status == 200) {
if (trim(xmlHttp.responseText) != "") {
//alert(xmlHttp.responseText);
document.getElementById("spanUserId").innerHTML = "<font color='red'>" + xmlHttp.responseText + "</font>";
}else {
document.getElementById("spanUserId").innerHTML = "";
}
}else {
alert("請(qǐng)求失敗,錯(cuò)誤碼=" + xmlHttp.status);
}
}
}
user_validate.jsp頁面接收用戶Id并根據(jù)Id查詢是否已存在,如果存在返回,不存在什么也不返回。
<%
String userId = request.getParameter("userId");
if(UserManager.getInstance().findUserById(userId) != null) {
out.println("用戶代碼已經(jīng)存在");
}
%>
當(dāng)光標(biāo)離開用戶代碼文本框觸發(fā)檢查方法。
效果圖

關(guān)于怎么根據(jù)用戶Id查詢是否已存在的代碼我就不給大家帖出來了,因?yàn)閷?shí)在太簡(jiǎn)單了,貼出來怕浪費(fèi)大家?guī)挕?/p>
做Web開發(fā)要更多的考慮用戶體驗(yàn),多運(yùn)用客戶端驗(yàn)證(當(dāng)然為了安全還要進(jìn)行一次服務(wù)器驗(yàn)證)和異步交互的方式可以有效提升用戶體驗(yàn)。只有用戶用著舒心,用戶喜歡用我們做的東西,我們的勞動(dòng)才有意義,我們的目標(biāo)就是讓用戶滿意。
細(xì)節(jié)決定成敗,頁面的各種提示都是很小的細(xì)節(jié),不要小看這些小細(xì)節(jié),做好了可以為你帶來更多的用戶;做的不好很可能讓用戶不再使用。程序猿們用心做好細(xì)節(jié),讓用戶愛上Web體驗(yàn)吧!
相關(guān)文章
ajax類AJAXRequest v0.8.01 2008-01-31 最新版附使用幫助
2008-02-02
利用AjaxControlToolkit實(shí)現(xiàn)百度搜索時(shí)的下拉列表提示詳細(xì)步驟
AjaxControlToolkit是一組控件的集合,可以實(shí)現(xiàn)自動(dòng)補(bǔ)充文本框,點(diǎn)擊文本框彈出日歷,加水印等Ajax效果等等,感興趣的朋友可以了解下啊,或許本文對(duì)你學(xué)習(xí)ajax有所幫助2013-02-02

