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

2016-02-19 12:58 5 1 收藏

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的AJAX应用之注册用户即时检测教程,一起来看看吧!超容易上手~

【 tulaoshi.com - Web开发 】

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

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

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

比如如下的示例就能展现AJAX的该功能:

http://www.cnbruce.com/test/ajax/t1.htm

当输入已经存在的用户名(如cnbruce、cnrose)时页面将显示重名不能注册(false),否则将显示可以注册(true),这为用户的注册提供了快速的参考,用户体验至上。

那么下面就来说说是如何来实现这样的功能的。

其实通过如上的t1.htm的源代码,各位就可以看到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();
}



关于这部分内容的说明请看:
http://www.cnbruce.com/blog/showlog.asp?cat_id=34&log_id=987

接着是自定义函数


function callServer() {
  var u_name = document.getElementById("u_name").value;
  if ((u_name == null) || (u_name == "")) return;
  var url = "cu.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,各有其说明情况,具体请参看:

http://www.cnbruce.com/blog/showlog.asp?cat_id=34&log_id=718

使用DHTML中的innerHTML可显示信息在定义的 span id="test1"是否能注册/span 上。

其余表单页面就不详叙了

打包文件下载(下载后将后缀 .cnbruce 修改为 .rar):

http://www.cnbruce.com/test/ajax/ajax.cnbruce

来源:http://www.tulaoshi.com/n/20160219/1602624.html

延伸阅读
标签: Web开发
我所举的这个例子是一个企业用户注册时的一个应用,当用户注册时检查用户名和企业名是否可用,以前的做法是在旁边加一个按钮,点击“检查”,就向服务器发出请求,然后等待……服务器返回信息,继续操作。如果我们用Ajax技术来实现以上的操作则不必等待服务器返回信息,用户输入用户名或企业名称的时候,当输入文本框失去焦点的时候,则会...
标签: Web开发
DIV class=box id=top_barWeb Tools--Ajax Version /DIVBR DIV class="box general"    天气预报: INPUT id=Weather size=17 value=北京   INPUT onclick=getWeather() type=button value="提 交" name=submit   SPAN id=Disp_Weather/SPAN/DIV DIV class="box general"  IP地址查询: INPUT id=Ip...
标签: CorelDRAW
  制作邮票关键在于如何制作邮票的齿状效果。记得在Photoshop中制作邮票主要是先用自定义间隔较大的笔刷,用它去对邮票边缘路径描边做出,作为矢量软件的Coreldraw,又该如何做出呢? 制作步骤: 1、 打开Coreldraw10,按“Ctrl+N”新建一个文件。 从标尺上拖出4条辅助线,所围成的大小就是邮票的基本大小。(...
标签: 电脑入门
现在,PowerPoint对你来说应该已经不算陌生了,你已经能够轻松地创建和组织幻灯,甚至经常为新手答疑解难。不过,你可能还没有掌握PowerPoint的某些特性它们中的大部分没有在文档中明确说明,但却能够有效地提高工作效率或幻灯效果。下面就让我一一道来。 一、键鼠合作 很多时候,一个视图按钮加上不同的键就可以产生完全不同的效果! 例如,...
        HttpServlet 是从GenericServlet 继续而来,因此它具有GenericServlet 类似的方法和对象,是我们使用Servlet编程经常用到的包,它支持HTTP 的post 和 get 等方法。 编程思路:下面的例子,运行结果是输出简单地返回客户发送给服务器的请求行和头部信息,以及一些可访问的HTTP 信息等。 ...

经验教程

754

收藏

92
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部