都是简单的实例,所以直接发代码静态页面Ajax.html复制代码代码如下:html标题AJax/标题脚本类型='text/javascript '函数LoadXMldoc(){ if(document。GetElementBYID(“帐户”).value==' '){ document。getelementbyid(' accDiv ').innerHTML='用户名不能为空;返回;} var xmlHttpif(窗口. XMLHttpRequest){//IE7 xmlHttp的代码=new XMlhttprequest();} else {//IE5/IE6 xmlHttp的代码=新的活动对象('微软.XMLHTTP’);} xmlhttp。onreadystatechange=function(){ if(xmlhttp。readystate==4 xmlhttp。status==200){//文档。getelementbyid(' myDiv ').innerHTML=XMlhttp。响应文本;if(xmlhttp。responsetext==' true '){ document。getelementbyid(' accDiv ').innerHTML='用户名不可用;} else { document。getelementbyid(' accDiv ').innerHTML='用户名可用;} } } var a=文档。getelementbyid(' account ').价值;//get xmlHttp.open('GET ',' validate.aspx?account=' a 'random=' Math.random,true);xmlhttp。send();}函数DelDATa(){文档。GetElementBYID(“帐户”).值=' ';文件。getelementbyid(' accDiv ').innerHTML=}/脚本/头体h3ajax/h3表tr td账号:/TDT输入id=' account ' type=' text ' on bulr=' Loadxmldoc();onfocus=' DelDATa();//TDT div id=' accDiv '/div/TD/tr tr TD密码:/TDT输入id=' passwd '类型=' password '/TD/tr TD确认密码:/TDT输入id=' vPasswd ' type=' password '/TD/tr TD姓名:/TDT输入id=' name '类型=' text '/TD/tr/table/body/html在账号输入框失去焦点时调用函数访问服务器使用的是得到方法,所以在参数处使用了附加随机码来避免缓存。验证页面validate.aspx后台代码:复制代码代码如下:使用系统;使用系统。集合。通用;使用系统Linq .使用系统网络.使用系统网络。用户界面使用系统。网络控件;使用系统。配置;使用系统数据。结构化查询语言使用系统数据。SqlClient公共部分类Ajax _ validate _ validate :系统.网络。ui。第{ public SqlConnection页连接;受保护的无效页面加载(对象发送者,事件参数){响应clear();如果(存在(请求. QueryString['account']))响应。写(“真”);否则回应。写(' false ');回应end();} ///摘要///获取数据库连接////摘要////返回/返回受保护的SqlConnection GetConnection(){ string str=配置管理器.连接字符串['连接字符串'].ConnectionStringconn=新的SqlConnection(字符串);返回conn}受保护的bool存在(字符串帐户){使用(GetConnection()){ 0尝试{ conn . Open();字符串' sqlStr='从用户信息中选择计数(*),其中account=' ' account SqlCommand cmd=new SqlCommand(sqlStr,conn);整数行=转换至t32(cmd .执行标量());如果(第0行)返回真实的否则返回false} catch(异常e){扔e;}最后{ conn . Close();} } }}在后台中验证用户名是否已经存在于数据库中,返回真或者假运行结果
数据库很简单,只建了一张表用户信息,有3个字段:帐户、密码、名称注意:在后台往请求页面写数据时,当写完要发送的数据之后,需要调用Response.end()方法来终止写入,否则可能会发送一个完整页面过去。