菜鳥學Java(一)——Ajax異步檢查用戶名是否存在


在任何網站注冊用戶的時候,都會檢查用戶是否已經存在。很久以前的處理方式是將所有數據提交到服務器端進行驗證,很顯然這種方式的用戶體驗很不好;后來有了Ajax,有了異步交互,當用戶輸完用戶名繼續填寫其他信息的時候,Ajax就將信息發到了服務器去檢查該用戶名是否已經被注冊了,這樣如果用戶名已經存在,不用等用戶將所有數據都提交就可以給出提示。采用這種方式大大改善了用戶體驗,今天就一起跟大家聊聊這種交互方式。


下面是用JS獲取用戶Id然后將其發送給user_validate.jsp頁面,然后通過callback方法接收頁面返回的消息並通知用戶。

 

    function validate(field) {
        if (trim(field.value).length != 0) {
            //創建Ajax核心對象XMLHttpRequest
            createXMLHttpRequest();
            
            var url = "user_validate.jsp?userId=" + trim(field.value) + "&time=" + new Date().getTime();
            
            //設置請求方式為GET,設置請求的URL,設置為異步提交
            xmlHttp.open("GET", url, true);
            
            //將方法地址復制給onreadystatechange屬性
            //類似於電話號碼
            xmlHttp.onreadystatechange=callback;
            
            //將設置信息發送到Ajax引擎
            xmlHttp.send(null);
        } else {
            document.getElementById("spanUserId").innerHTML = "";
        }
    }
    
    function callback() {
        //alert(xmlHttp.readyState);
        //Ajax引擎狀態為成功
        if (xmlHttp.readyState == 4) {
            //HTTP協議狀態為成功
            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("請求失敗,錯誤碼=" + xmlHttp.status);
            }
        }
    }

 

 


user_validate.jsp頁面接收用戶Id並根據Id查詢是否已存在,如果存在返回,不存在什么也不返回。

<%
    String userId = request.getParameter("userId");
    if(UserManager.getInstance().findUserById(userId) != null) {
        out.println("用戶代碼已經存在");
    }
%>

 



當光標離開用戶代碼文本框觸發檢查方法。

 

<input name="userId" type="text" id="userId" size="10" maxlength="10"  value="<%=userId %>" onblur="validate(this)">

 


效果圖

 



關於怎么根據用戶Id查詢是否已存在的代碼我就不給大家帖出來了,因為實在太簡單了,貼出來怕浪費大家帶寬。

做Web開發要更多的考慮用戶體驗,多運用客戶端驗證(當然為了安全還要進行一次服務器驗證)和異步交互的方式可以有效提升用戶體驗。只有用戶用着舒心,用戶喜歡用我們做的東西,我們的勞動才有意義,我們的目標就是讓用戶滿意。

細節決定成敗,頁面的各種提示都是很小的細節,不要小看這些小細節,做好了可以為你帶來更多的用戶;做的不好很可能讓用戶不再使用。程序猿們用心做好細節,讓用戶愛上Web體驗吧!



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM