asp中实现AJAX例子


function Trim(){
 return this.replace(//s+$|^/s+/g,"");
}
String.prototype.Trim=Trim; //过滤两端空格

function getObject(elementId) {  //获取指定id的object
 if (document.getElementById) {
  return document.getElementById(elementId);
 } else if (document.all) {
  return document.all[elementId];
 } else if (document.layers) {
  return document.layers[elementId];
 }
}

function getObjValue(elementId){ //获取指定id的form组件的值
 if(getObject(elementId).value!=undefined)
  return getObject(elementId).value.Trim();
 else
  return "";
}

function XHR(){ //创建XMLHttpRequest对象
 var xhr;
 try{
  xhr=new XMLHttpRequest();
 }catch(e){
      var a=['MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','MICROSOFT.XMLHTTP.1.0','MICROSOFT.XMLHTTP.1','MICROSOFT.XMLHTTP'];
      for (var i=0;i<a.length;i++){
         try{
           xhr = new ActiveXObject(a[i]);
           break;
         }catch(e){}
      }
   }
 return xhr;
}

function checkForm(){ //表单的检测
 if(getObjValue("username")==""||getObjValue("content")==""){
  alert("请把带*号的项填写完整!");
  return false;
 }
 if(getObjValue("username").length>20){
  alert("你的名字也太长了吧?不要大于20哦");
  return false;
 }
 if(getObjValue("qq")!="" && !/^[0-9]{5,10}$/.test(getObjValue("qq"))){
  alert("腾讯好像还没有这个qq号吧?");
  return false;
 }
 if(getObjValue("email")!="" && !/^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$/.test(getObjValue("email"))){
  alert("换个邮箱吧,这个不合适哦!");
  return false;
 }
 return true;
}

function sendJS() { //发送留言
 var xhr=XHR();
 if(xhr&&checkForm()){
  getObject("submit").value="Sending...";
  getObject("submit").disabled=true;
  
  xhr.open("POST", "AddBook.asp", true);
  xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  var aIdArray=new Array("flag="+Math.random());
  var argLen=arguments.length;
  for(i=0;i<argLen;i++){
   aIdArray[i+1]="&"+arguments[i]+"="+escape(getObjValue(arguments[i]));
  }
     var data =aIdArray.join('');
  xhr.onreadystatechange=function(){
   if(xhr.readyState==4){
    if(xhr.status==200){
     alert(unescape(xhr.responseText)); //输出返回信息,成功返回“留言成功”

     getObject("submit").value="Send It"; //禁用发送表单,防止重复提交
     getObject("submit").disabled=false;

     clearForm();    //清除表单的值
     addNew();    //更新留言
    }else{
     alert("网络传输错误!请重试!"); 
    }
   } 
  };
      xhr.send(data);
   }
}

function clearForm(){ //清空表单的函数
 getObject("username").value="";
 getObject("qq").value="";
 getObject("email").value="";
 getObject("content").value="";
}

function addNew(){ //更新留言,实质上是重新去服务器提取第一页的留言
 getList(1); 
}

function makBookStr(username,sex,qq,email,content,pubdate){ //创建一条留言的文本串
 if((email=unescape(email))!="不告诉你"){
  email='<a href="mailto:'+email+' " title="'+email+'">给我写信</a>';
 }
 var tempStr='<div class="note">/
   <div class="sexName"><div class="sex">'+sex+'</div><strong>昵称:</strong>'+unescape(username)+'</div>/
   <div class="userInfo"><strong>QQ:</strong>'+unescape(qq)+' <strong>E-mail:</strong>'+email+'  <strong>发表时间:</strong>'+pubdate+'</div>/
   <div class="content">/
    <strong>留言内容:</strong>/
    <p>'+unescape(content)+'</p>/
   </div>/
  </div>';
 return tempStr;
}

function writeBookArr(Str){ //输出服务器返回的留言内容
 if(Str!=0){
  var bookList=eval("new Array("+Str+")");
  var allStr="";
  for(var i=0;i<bookList.length;i++){
   allStr+=makBookStr(bookList[i].username,bookList[i].sex,bookList[i].qq,bookList[i].email,bookList[i].content,bookList[i].pubdate); 
  }
 }else{
  allStr="<div style='color:#f00;text-align:center;border:1px solid #d3d3d3;line-height:50px;margin-top:10px;'>暂时还没有留言!</div>"
 }
 getObject("bookList").innerHTML=allStr;
}

function getList(page){ //获取指定页的留言
 getObject("bookList").innerHTML="<div id=/"wait/">留言加载中....请稍后!</div>"; //清除原来显示的内容
 var xhr=XHR();
 xhr.open("GET", "getRecord.asp?page="+page+"&r="+Math.random(), true);
 xhr.onreadystatechange=function(){
  if(xhr.readyState==4){
   if(xhr.status==200){
    writeBookArr(xhr.responseText);
    getPage(); //更新分页信息
   }else{
    alert("获取留言失败!请刷新重试!"); 
   }
  }
  
 }
 xhr.send(null);
}

function getPage(){ //更新分页信息
 getObject("pageList").innerHTML="<div id=/"wait/">分页信息加载中....请稍后!</div>"; //清除原来显示的内容
 var xhr=XHR();
 xhr.open("GET", "getRecord.asp?act=getPageInfo&r="+Math.random(), true);
 xhr.onreadystatechange=function(){
  if(xhr.readyState==4){
   if(xhr.status==200){
    //Result=记录数|每页记录数|页数|当前页
    var Result=xhr.responseText.split("|");
    var tempPageStr=new Array("<div>共有<span class=/"tip/">"+Result[0]+"</span>条留言 每页<span class=/"tip/">"+Result[1]+"</span>条留言 当前第<span class=/"tip/">"+Result[3]+"/"+Result[2]+"</span>页 转向第<select name=/"page/" οnchange=/"getList(this.value)/" style=/"width:50px;/">");
    for(var i=1;i<=Result[2];i++){
     if(i!=Result[3])
      tempPageStr[i]="<option value=/""+i+"/">"+i+"</option>";
     else
      tempPageStr[i]="<option selected=/"selected/" value=/""+i+"/">"+i+"</option>";
    }
    tempPageStr[i]="</select>页</div>";
    var ResultStr=tempPageStr.join('');
    getObject("pageList").innerHTML=ResultStr;
   }else{
    alert("获取分页信息失败!请刷新重试!"); 
   }
  }
  
 }
 xhr.send(null);
}

function changeStyle(id){ //切换样式
 var stylesheet=getObject("color").href="color/color"+id+".css";
 document.cookie="stylesheet="+escape(stylesheet); //写入Cookie
}

function initStyle(){ //初始化样式,如果cookie存在样式,则加载cookie样式,否则加载默认样式
  if(/stylesheet=([^;]+)/.test(document.cookie))
   getObject("color").href=unescape(RegExp.$1);
}
initStyle(); //加载初始化样式 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值