设为首页
加入收藏
站内地图
旧版入口
当前位置:首页 > 站长学院 > 网络编程 > ASP.NET

AJAX应用之注册用户即时检测

作者:佚名 出处:网络转载 时间:07-13 点击:

内容载入中...
支持原创支持教程中国 吴龙杰

作者blog:

AJAX的无刷新机制使得在注册系统中对于注册名称的检测能即时显示。

常见的用户注册是用户输入用户名,后台程序检测数据库中用户名是否重复而做出注册的成功与失败之提示(当用户注册重名时将返回重新注册),或者稍微人性化一点就是在用户名文本框后添加一个检测按钮,让用户检测后再做注册。

以上操作,对于用户体验方面来说是比较“差劲”的,一个很好的用户体验就是:当用户输入完注册用户名后,Web系统应能即时检查并即时显示,并在检查和显示的同时不影响当前页面的操作。这也就是“异步获取数据”的要求,而这正是AJAX的强项

XMLHttp对象

var XMLHttp = false;
try {
  XMLHttp = new ActiveXObject("MsXML2.XMLHTTP");
} catch (e) {
  try {
    XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e2) {
    XMLHttp = false;
  }
}
if (!XMLHttp && typeof XMLHttpRequest != 'undefined') {
  XMLHttp = new XMLHttpRequest();
}

关于这部分内容的说明 ASP?name=" + escape(u_name);
  XMLHttp.open("GET", url, true);
  XMLHttp.onreadystatechange = updatePage;
  XMLHttp.send(null); 
}

该函数的主要功能就是异步获得cu.ASP的内容,在此前将先提取当前页表单元素“u_name”即用户名文本框zhogn 的值,通过cu.ASP其后的参数及赋值而得到了不同的结果(true or false)。

那么这里要说的即是cu.ASP,他的主要功能就是接受URL参数name的值做内容显示,该内容最终被t1.htm异步获取。

<!--cu.ASP的源码示例-->

<!--#include file="conn.ASP"-->
<%
name=request.querystring("name")
Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select * from u_ser where u_name='"&name&"'"
rs.Open sql,conn,1,1
if rs.eof and rs.bof then
    response.write("true")
else
    response.write("false")
end if
rs.close
set rs=nothing
call CloseDatabase
%>

如何将异步获取的信息显示在当前页呢

function updatePage() {
  if (XMLHttp.readyState < 4) {
    test1.innerHTML="loading...";
  }
  if (XMLHttp.readyState == 4) {
    var response = XMLHttp.responseText;
    test1.innerHTML=response;
  }
}

其中XMLHttp.readyState中的readyState表示服务器在处理请求时的进展状况,其值分别有0-4,各有其说明情况,HTML中的innerHTML可显示信息在定义的 <span id="test1">是否能注册</span> 上。

其余表单页面就不详叙了

document.getElementById('loading').style.display="none";
收藏本文:
】【打印页面】【推荐给朋友】【关闭窗口

站长学院

推荐信息