這次帶給大家怎樣用Ajax異步檢查用戶名有無重複,用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("用户代码已经存在"); } %>
當遊標離開使用者代碼文字方塊觸發檢查方法。
複製程式碼 程式碼如下:
效果圖
關於怎麼根據用戶Id查詢是否已存在的程式碼我就不給大家貼文出來了,因為實在太簡單了,貼出來怕浪費大家頻寬。
做Web開發要更多的考慮使用者體驗,多運用客戶端驗證(當然為了安全還要進行一次伺服器驗證)和非同步互動的方式可以有效提升使用者體驗。只有使用者用著舒心,使用者喜歡用我們做的東西,我們的勞動才有意義,我們的目標就是讓使用者滿意。
細節決定成敗,頁面的各種提示都是很小的細節,不要小看這些小細節,做好了可以為你帶來更多的用戶;做的不好很可能讓用戶不再使用。程式猿們用心做好細節,讓使用者愛上Web體驗吧!
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是怎麼用Ajax非同步檢查使用者名稱有無重複的詳細內容。更多資訊請關注PHP中文網其他相關文章!