Ajax非同步檢查使用者名稱是否存在(附Demo下載)

來源:互聯網
上載者:User

在任何網站註冊使用者的時候,都會檢查使用者是否已經存在。很久以前的處理方式是將所有資料提交到伺服器端進行驗證,很顯然這種方式的使用者體驗很不好;後來有了Ajax,有了非同步互動,當使用者輸完使用者名稱繼續填寫其他資訊的時候,Ajax就將資訊發到了伺服器去檢查該使用者名稱是否已經被註冊了,這樣如果使用者名稱已經存在,不用等使用者將所有資料都提交就可以給出提示。採用這種方式大大改善了使用者體驗,今天就一起跟大家聊聊這種互動方式。

下面是用JS擷取使用者Id然後將其發送給user_validate.jsp頁面,然後通過callback方法接收頁面返回的訊息並通知使用者。

function validate(field) {if (trim(field.value).length != 0) {//建立Ajax核心對象XMLHttpRequestcreateXMLHttpRequest();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體驗吧!



Demo下載

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.