很早就想发布这篇POST了,Ajax实现简单用户名重名查询,引用了xmlhttprequest object pool,如下:

XMLHttpRequest Object Pool
/**
 * XMLHttpRequest Object Pool
 *
 * @author    legend <legendsky@hotmail.com>
 * @link      http://www.ugia.cn/?p=85
 * @Copyright www.ugia.cn
 */

var XMLHttp = {
    _objPool: [],

_getInstance: function ()
    {
        for (var i = 0; i < this._objPool.length; i ++)
        {
            if (this._objPool[i].readyState == 0 || this._objPool[i].readyState == 4)
            {
                return this._objPool[i];
            }
        }

// IE5中不支持push方法
        this._objPool[this._objPool.length] = this._createObj();

return this._objPool[this._objPool.length - 1];
    },

_createObj: function ()
    {
        if (window.XMLHttpRequest)
        {
            var objXMLHttp = new XMLHttpRequest();

}
        else
        {
            var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
            for(var n = 0; n < MSXML.length; n ++)
            {
                try
                {
                    var objXMLHttp = new ActiveXObject(MSXML[n]);
                    break;
                }
                catch(e)
                {
                }
            }
         }

// mozilla某些版本没有readyState属性
        if (objXMLHttp.readyState == null)
        {
            objXMLHttp.readyState = 0;

objXMLHttp.addEventListener("load", function ()
                {
                    objXMLHttp.readyState = 4;

if (typeof objXMLHttp.onreadystatechange == "function")
                    {
                        objXMLHttp.onreadystatechange();
                    }
                },  false);
        }

return objXMLHttp;
    },

// 发送请求(方法[post,get], 地址, 数据, 回调函数)
    sendReq: function (method, url, data, callback)
    {
        var objXMLHttp = this._getInstance();

with(objXMLHttp)
        {
            try
            {
                // 加随机数防止缓存
                if (url.indexOf("?") > 0)
                {
                    url += "&randnum=" + Math.random();
                }
                else
                {
                    url += "?randnum=" + Math.random();
                }

open(method, url, true);

// 设定请求编码方式
                setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
                send(data);
                onreadystatechange = function ()
                {
                    if (objXMLHttp.readyState == 4 && (objXMLHttp.status == 200 || objXMLHttp.status == 304))
                    {
                        callback(objXMLHttp);
                    }
                }
            }
            catch(e)
            {
                alert(e);
            }
        }
    }
};

ASPX:

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="THttpModule.Login" %>
 2 
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 4 <html xmlns="http://www.w3.org/1999/xhtml">
 5 <head runat="server">
 6     <title>Login Page</title>
 7     <style type="text/css" media="screen">
 8         @import url("http://www.taobao.com/home/css/tbsp/master/global_v3a.php?t=20080429.css");
 9         @import url("http://www.taobao.com/home/css/component.php?t=20080624.css");
10         @import url("http://www.taobao.com/home/css/component_ext.php?t=20080624.css");
11         @import url("http://www.taobao.com/home/css/sys/register060524.css?t=20080624.css");
12     </style>
13     <script src="js/xmlhttphelper.js" type="text/javascript"></script>
14     <script language="javascript">
15     <!-- Author PetterLiu http://wintersun.cnblogs.com -->
16     var usernameCheckerTimer;
17 function CallbackSuccess(objXMLHttp) {
18    var result = objXMLHttp.responseText; 
19    document.getElementById("check_username_info").innerHTML = result; 
20    alert(result); 
21    }
22 function checkIsExist() {
23    var uname = document.getElementById("username").value; 
24    if (uname == "") {
25       return false; 
26       }
27    var url = 'DataProvider.ashx'; 
28    var sdata = "username=" + uname; 
29    XMLHttp.sendReq("post", url, sdata, CallbackSuccess); 
30    }
31 function checkUsernameUsage() {
32    clearTimeout(usernameCheckerTimer); 
33    document.getElementById("check_username_info").innerHTML = "检测中,请稍等"; 
34    document.getElementById("check_username_info").className = "WarningMsg"; 
35    //delay time 750ms
36    sernameCheckerTimer = setTimeout("checkIsExist();", 750); 
37    }
38  </script>
39 
40 </head>
41 <body>
42     <form id="form1" runat="server">
43     <div class="Hint">
44         用户名:</div>
45     <div class="Input" style="width: 210px">
46         <input id="username" type="text" size="24" value="" />
47         <br />
48         <input type="button" name="check_username" value="检查用户名是否可用" onclick="checkUsernameUsage();" />
49     </div>
50     <div class="Info" style="width: 360px">
51         <div id="username_info">
52         </div>
53         <div id="check_username_info">
54         </div>
55     </div>
56     </form>
57 </body>
58 </html>
59 

接收数据的httphandler

 1     /// <summary>
 2     /// Recevice Httphandler
 3     /// <remarks>Author PetterLiu http://wintersun.cnblogs.com</remarks>
 4     /// </summary>
 5     [WebService(Namespace = "http://tempuri.org/")]
 6     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
 7     public class DataProvider : IHttpHandler
 8     {
 9         /// <summary>
10         /// Process logic
11         /// </summary>
12         /// <param name="context">HttpContext</param>
13         public void ProcessRequest(HttpContext context)
14         {
15             string username = context.Request.Form["username"];
16             if (username == "petter")
17                 context.Response.Write("用户名已存在。");
18             else
19                 context.Response.Write("恭喜你,你可以使用此用户名。");
20         }
21 
22         public bool IsReusable
23         {
24             get
25             {
26                 return false;
27             }
28         }
29     }

Ajax实现简单用户名重名查询相关推荐

  1. ajax重名检测,jQuery+Ajax实现用户名重名实时检测

    利用jQuery框架,封装了底层的Ajax异步技术,通过简单的方法调用即可实现.这篇博客是针对用户注册时出现的用户名重名问题的自动检测,利用的技术是Ajax异步传输. register.jsp 注册显 ...

  2. java实现ajax同名验证_jQuery+Ajax实现用户名重名实时检测

    利用jQuery框架,封装了底层的Ajax异步技术,通过简单的方法调用即可实现.这篇博客是针对用户注册时出现的用户名重名问题的自动检测,利用的技术是Ajax异步传输. register.jsp 注册显 ...

  3. 【更新】北京、广东、吉林重名数量查询工具,给孩子起名重名查询

    最近很多朋友需要重名查询的功能,我今天测试了一下,北京和广东的查询工具好像都有点问题(不知道是不是和最近的那啥有关).那两个链接都是政府的网站(域名有gov),大家也能看出来,不知道因为什么原因不能使 ...

  4. 北京、广东重名数量查询工具,给孩子起名重名查询

    只找到了北京和广东的重名数量查询,哪位朋友有其他省市的重名数量查询链接可以在后台发给我,感谢. 两个网站都是gov的政府网站,应该是从公安的数据库查询的重名数量. 北京查询截图: 广州查询截图: 两个 ...

  5. mysql查询同名同姓重名人数,查全国同名同姓人数,姓名重名查询系统全国

    查全国同名同姓人数,姓名重名查询系统全国 时间:2020-05-07 14:30:01 不少父母在为婴儿取名的时候,会有兴趣知道在全中国重名的人数,希望新生儿的姓名不会跟太多人相同.或者有的小伙伴只是 ...

  6. 2023 抖音最新无人直播变现全国重名查询项目

      抖音目前刚火的快速变现项目全国重名查询 开播需求 一部直播手机一台电脑配置不限越高越好 如何选择开播模式 1:0粉开播(手机)模式适用于粉丝不到1000并且没有直播伴侣开播权限的账号 2:千粉开播 ...

  7. AJAX——注册新用户的重名提示

    基本概念 AJAX:AJAX引擎其实是一个JavaScript对象,全写是 window.XMLHttpRequest对象,由于浏览器的版本不同,特别是老版本的IE浏览器,虽然也支持AJAX引擎,但是 ...

  8. jQuery+Ajax+Mysql 检测用户名注册时是否重名

    利用jQuery框架,封装了底层的Ajax异步技术,通过简单的方法调用即可实现.这篇博客是针对用户注册时出现的用户名重名问题的自动检测,利用的技术是Ajax异步传输. register.jsp 注册显 ...

  9. mysql查询同名同姓重名人数,查询与自己同名的人,如何查找重名人数

    查询与自己同名的人,如何查找重名人数 时间:2020-04-22 15:30:01 很多爸爸妈妈在为宝宝起名字的同时,会想了解在全国重名的人数,希望宝宝的名字不会跟太多人一样.或者有的小伙伴只是好奇国 ...

最新文章

  1. MTK Android添加驱动模块
  2. 数学分析 连续函数的孤立零点
  3. linux实验试题 cp,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  4. Windows服务器版本简介
  5. jquery入门(一)
  6. spring学习笔记02-spring-bean创建的细节问题
  7. framebuffer[转之]
  8. jupyter notebook安装后无法连接到ubuntu gpu环境
  9. 题目243-交换输出
  10. 推荐几款绿色无广告良心软件
  11. 双向电平转换芯片TXB0304应用笔记
  12. 数模学习(模糊数学篇)——模糊聚类(python实现)
  13. 给自己做一块开发板 #AnyBoard
  14. layui请求加token_琴海森林 JFinal-layui 文档、资料、学习、API,token验证
  15. 无人机快速三维建模平台
  16. R语言的导数计算(转)
  17. python3 mysql5.7_/如何连接python3.4 和MySQL5.7,请大牛们指教这个python入门新手
  18. element-ui dialog(多弹框、嵌套弹框)被蒙版遮住
  19. 动态面板:拖动滑块解锁(1)
  20. Windows下默认远程下载

热门文章

  1. OpenGL ES3 0实现简单粒子火焰效果
  2. SQL SERVER 查看并结束某个进程
  3. golang for android
  4. varchar与nvarchar的区别
  5. 使用Entity Framework和WCF Ria Services开发SilverLight之6:查找指定字段
  6. 在华为路由器上配置IPv6 over IPv4隧道
  7. Calendar使用方法
  8. Chrome开发,debug的使用方法。
  9. 一行 Python 实现并行化 -- 日常多线程操作的新思路 - 左手键盘,右手书 - SegmentFault...
  10. (转)Javascript模块化编程(一):模块的写法