ajax实现注册用户名全套流程

这次给大家带来ajax实现注册用户名全套流程,ajax实现注册用户名全套流程的注意事项有哪些,下面就是实战案例,一起来看一下。

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

AJAX 是一种用于创建快速动态网页的技术。其核心是 JavaScript 对象 XMLHttpRequest。该对象在 Internet Explorer 5 中首次引入,它是一种支持异步请求的技术。简而言之,XMLHttpRequest使您可以使用 JavaScript 向服务器提出请求并处理响应,而不阻塞用户。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。

试想如果在注册时,提交了注册信息,等了几秒后页面重载了,结果弹出一个提示框告诉你“用户名已被使用”,那将是很令人恼火的一件事。所以在这里,使用AJAX实现异步请求,即可在不重载页面的情况下实现与数据库的通讯。

创建XMLHTTPRequest对象

使用javascript在html页面中创建XMLHTTPRequest对象,实现AJAX异步请求:

    var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');      xmlhttp.open("POST", "AJAXTest.ashx?" + "i=5&j=10", true);      xmlhttp.onreadystatechange = function ()      {        if (xmlhttp.readyState == 4)        {          if (xmlhttp.status == 200)          {            alert(xmlhttp.responseText);          }          else          {            alert("AJAX服务器返回错误!");          }        }      }      xmlhttp.send(); 

登录后复制

var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject(‘Microsoft.XMLHTTP’); //创建XMLHTTP对象,考虑兼容性

xmlhttp.open(“POST”, “AJAXTest.ashx?” + “i=5&j=10”, true); //“准备”向服务器的GetDate1.ashx发出Post请求(GET可能会有缓存问题)。这里还没有发出请求。

readyState == 4 表示服务器返回完成数据了。之前可能会经历2(请求已发送,正在处理中)、3(响应中已有部分数据可用了,但是服务器还没有完成响应的生成)

注意:   

不要以为if (xmlhttp.readyState == 4) 在send之前执行就觉得不对, xmlhttp.send(); 这时才开始发送请求。这时才开始发送请求后不等服务器返回数据,就继续向下执行,所以不会阻塞,界面就不卡了,这就是AJAX中“A”的含义“异步”。

AJAX的封装

在实际项目开发中,会有多处用到AJAX异步请求,可是创建对象代码这么长,复制粘贴都嫌麻烦,而且还会影响代码的观赏性,所以需要将AJAX进行封装。将其封装成js功能文件,并在网页中导入即可进行引用。

简单AJAX封装后代码:

     function ajax(url,onsuccess,onfail)    {      var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');      xmlhttp.open("POST", url, true);      xmlhttp.onreadystatechange = function ()      {        if (xmlhttp.readyState == 4)        {          if (xmlhttp.status == 200)          {            onsuccess(xmlhttp.responseText);//成功时逻辑操作          }          else          {            onfail(xmlhttp.status);//失败是逻辑操作          }        }      }      xmlhttp.send(); //这时才开始发送请求    }

登录后复制

封装完成后,我们可以开始写登陆判断代码(我是用的是.net):

首先,创建一个html页login.htm以及ashx一般处理程序userhandle.ashx,请求的url中带上一个action参数,在一般处理程序中对请求进行处理。

function Submit1_onclick() {      var name = document.getElementById("name").value;      var psw = document.getElementById("psw").value;      if (psw != "" && name != "") {        //调用AJAX       ajax("../userhandle.ashx?operate=login&userName=" + name + "&psw=" + psw, function (resText) {          if (resText == "fail") {            alert("用户名或密码错误!");            return false;          }          else {            document.write(resText);          }        })      }      else {        alert("请输入完整登陆信息!");        return false;      }    }

登录后复制

在一般处理程序中接到请求动作,判断并执行相关查询,返回一个字符串,前台页面接到后,判断并执行相应功能。

 public void login(HttpContext context)    {      userBLL ub = new userBLL();      string userName = context.Request["userName"];      string userPsw = context.Request["psw"];         bool b = ub.Login(userName, userPsw);//封装好的bll层方法,判断用户名密码是否正确      if (b == true)      {        context.Session["Name"] = userName;        context.Session["role"] = "user";        context.Response.Write("success");       }      else      {        context.Response.Write("fail");      }    }

登录后复制

服务器判断完后,将success或者fail发送到客户端。这样一个使用AJAX异步请求实现登陆就完成了。

至于注册是判断用户名,我就只粘贴上来:

function check() {      var userName = document.getElementById("Text1").value;      if (userName == "" || userName == null) {        document.getElementById("nameMeg").style.color = "red";        document.getElementById("nameMeg").innerHTML = "用户名为6-10位英文或数字";      }      else {       ajax("../userhandle.ashx?operate=checkName&userName=" + userName, function (resText) {        if (resText == "forbid") {          document.getElementById("nameMeg").style.color = "red";          document.getElementById("nameMeg").innerHTML = "用户名含有非法词语";        } else if (resText == "already have") {          document.getElementById("nameMeg").style.color = "red";          document.getElementById("nameMeg").innerHTML = "用户名已被使用";        } else {          document.getElementById("nameMeg").style.color = "green";          document.getElementById("nameMeg").innerHTML = "可以使用";        }      })      }    }

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

怎样使用原生的ajax处理json数据

数据库+ajax方法如何实现地图界面

以上就是ajax实现注册用户名全套流程的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2775760.html

(0)
上一篇 2025年3月8日 14:32:30
下一篇 2025年3月3日 21:42:30

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • AJAX注册页面异步请求的方法实现

    这次给大家带来AJAX注册页面异步请求的方法实现,AJAX注册页面异步请求方法实现的注意事项有哪些,下面就是实战案例,一起来看一下。 AJAX简介 (1)AJAX = 异步 JavaScript 和 XML。 (2)AJAX 是一种用于创建…

    2025年3月8日
    200
  • ajax的多次请求如何实现

    这次给大家带来ajax的多次请求如何实现,实现ajax多次请求的注意事项有哪些,下面就是实战案例,一起来看一下。 我们在用ajax请求数据时,可能会遇到一次点击多次触发的可能。 (比如说:ajax 的 onreadystatechange …

    编程技术 2025年3月8日
    200
  • ajax不刷新的情况下验证注册信息

    这次给大家带来ajax不刷新的情况下验证注册信息,ajax不刷新的情况下验证注册信息注意事项有哪些,下面就是实战案例,一起来看一下。 ajax无刷新验证注册信息示例,其大概思路如下: 一.把注册的html页面做好(html+css) 1.不…

    2025年3月8日 编程技术
    200
  • Ajax请求WebService跨域的实现方法(附代码)

    这次给大家带来Ajax请求WebService跨域的实现方法(附代码),Ajax请求WebService跨域的注意事项有哪些,下面就是实战案例,一起来看一下。 1、背景   用Jquery中Ajax方式在asp.net开发环境中WebSer…

    2025年3月8日 编程技术
    200
  • ajax怎么处理服务器返回的数据类型

    这次给大家带来ajax怎么处理服务器返回的数据类型,ajax处理服务器返回数据类型的注意事项有哪些,下面就是实战案例,一起来看一下。 其原理很简单,结构上基本不变,只是改变处理返回数据的方式. 1.Text/HTML格式 这种返回类型处理很…

    编程技术 2025年3月8日
    200
  • ajax获取页面的返回参数并且给控件赋值

    这次给大家带来ajax获取页面的返回参数并且给控件赋值,ajax获取页面返回参数并且给控件赋值的注意事项有哪些,下面就是实战案例,一起来看一下。 js页面 $.ajax({type : “get”,url : “”, //跳转页面data …

    编程技术 2025年3月8日
    200
  • Ajax向后台传输json格式数据出现错误应如何处理

    这次给大家带来Ajax向后台传输json格式数据出现错误应如何处理,处理Ajax向后台传输json格式数据出现错误的注意事项有哪些,下面就是实战案例,一起来看一下。 问题描述:   ajax往后台传json格式数据报415错误,如下图所示 …

    2025年3月8日
    200
  • ajax怎样提交form表单与实现文件上传

    这次给大家带来ajax怎样提交form表单与实现文件上传,ajax提交form表单与实现文件上传的注意事项有哪些,下面就是实战案例,一起来看一下。 前几天,发现了一些小问题。我在写后台管理页面时,需要上传一张图片。于是我就用很普通的Form…

    编程技术 2025年3月8日
    200
  • ajax怎样实现跨页面提交表单

    这次给大家带来ajax怎样实现跨页面提交表单,ajax实现跨页面提交表单的注意事项有哪些,下面就是实战案例,一起来看一下。 前面提到过重复提交表单问题,处理token口令校验、重定向之外,还有一种经常使用到的方法就是新页面处理表单提交,完成…

    2025年3月8日
    200
  • ajax结合豆瓣搜索进行分页如何实现(附代码)

    这次给大家带来ajax结合豆瓣搜索进行分页如何实现(附代码),ajax结合豆瓣搜索进行分页实现的注意事项有哪些,下面就是实战案例,一起来看一下。 使用豆瓣api,得到分页结果。相当于从后台数据库获得的结果一样。所不同的是,没法事先知道页数。…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论