首頁 >web前端 >js教程 >怎麼用Ajax非同步檢查使用者名稱有無重複

怎麼用Ajax非同步檢查使用者名稱有無重複

php中世界最好的语言
php中世界最好的语言原創
2018-03-30 16:55:271942瀏覽

這次帶給大家怎樣用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=&#39;red&#39;>" + 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中用josnp接收josn資料步驟詳解

前端ajax請求的優雅方案怎麼實作

以上是怎麼用Ajax非同步檢查使用者名稱有無重複的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:JS的排他思想下一篇:JS的排他思想