原生javascript实现的ajax异步封装功能示例


Posted in Javascript onNovember 03, 2016

本文实例讲述了原生javascript实现的ajax异步封装功能。分享给大家供大家参考,具体如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="Scripts/jquery.js"></script>
</head>
<style>
* { margin: 0px; padding: 0px; }
#box { float: left; width: 500px; }
#left { float: left; background: #090; width: 100px; height: 100px; }
#right { background: #C60; width: 100px; height: 100px; float: left; }
#box2 { width: 180px; height: 100px; }
html>body #box2 { width: auto; height: auto; min-width: 180px; min-height: 100px; }
</style>
<body>
<div id="box">
 <div id="left">点击我 看效果!</div>
 <div id="right">fffeeee</div>
</div>
<div style="width:100px; height:100px; background:#969; float:left;" id="dd">dddd</div>
<script>
// 异步请求封装 IE6即以上浏览器
// ajax(url,fnSucc,selectID,fnFaild)
//url 请求地址
//fnSucc 异步请求后的内容处理函数
//fnFaild 请求失败处理函数
function ajax(url,fnSucc,fnFaild)
{
    //1.创建Ajax对象
    //非IE6
    var oAjax;
    if(window.XMLHttpRequest)//不会报错,只会是undefined
     {oAjax=new XMLHttpRequest();}
    else
    //iE6 IE5
     {oAjax=new ActiveXObject("Microsoft.XMLHTTP");}
    //alert(oAjax);
    //2.连接服务器
    //open(方法,文件名,异步传输)
    oAjax.open("get",url,true);//制止缓存
    //3.发送请求
    oAjax.send();
    //4.接收返回值 和服务器通讯的时候此事件发生
    oAjax.onreadystatechange=function()
    {
     //oAjax.readyState //浏览器和服务器,进行到哪一步了 异步握手过程
     if(oAjax.readyState==4)//读取完成(可能文件不存在)
     {
      if(oAjax.status==200 || oAjax.status==304)//请求成功 304即使浏览器缓存了也返回数据
      {
       fnSucc(oAjax.responseText);
       //alert("成功"+oAjax.responseText);
      }
      else
      {
       if(fnFaild)//fnFaild传进来时
       {
        fnFaild(oAjax.status);
       }
       //alert("失败:"+oAjax.status);//status为404
      }
     }
    }
}
window.onload=function(){
  var oBtn=document.getElementById("left");
  oBtn.onclick=function()
  {
      ajax("http://28967904.jsp.jspee.cn/ext/singlePage/list/json-1-1-20",function(str){
        var da= JSON.parse(str); //JSON数据解析
        alert(da.totalRow)
        },function(erorr){
          console.log('请求出错:'+erorr);
        })
  }
}
</script>
</body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript中两个感叹号的作用说明
Dec 28 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
Jan 24 Javascript
Javascript自定义排序 node运行 实例
Jun 05 Javascript
浅谈JS日期(Date)处理函数
Dec 07 Javascript
JS使用ajax方法获取指定url的head信息中指定字段值的方法
Mar 24 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
Sep 19 Javascript
微信JS-SDK选取手机照片上传功能
Apr 21 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
May 11 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
Jun 23 Javascript
浅谈关于.vue文件中style的scoped属性
Aug 19 Javascript
解决layui弹框失效的问题
Sep 09 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
May 16 Javascript
探索Vue.js component内容实现
Nov 03 #Javascript
javascript跨域请求包装函数与用法示例
Nov 03 #Javascript
预防网页挂马的方法总结
Nov 03 #Javascript
网页挂马方式整理及详细介绍
Nov 03 #Javascript
AngularJS实现在ng-Options加上index的解决方法
Nov 03 #Javascript
AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】
Nov 03 #Javascript
基于vuejs+webpack的日期选择插件
May 21 #Javascript
You might like
浅谈PHP中其他类型转化为Bool类型
2016/03/28 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
javascript delete 使用示例代码
2010/03/29 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
做web开发 先学JavaScript
2014/12/12 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
原生js实现addclass,removeclass,toggleclasss实例
2016/11/24 Javascript
SpringMVC简单整合Angular2的示例
2017/07/31 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
微信小程序自动客服功能
2017/11/02 Javascript
详解使用webpack构建多页面应用
2017/12/21 Javascript
js实现动态改变radio状态的方法
2018/02/28 Javascript
微信小程序onLaunch异步,首页onLoad先执行?
2018/09/20 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
[00:05]ChinaJoy现场 DOTA2玩家高呼“CN DOTA BEST DOTA”
2019/08/04 DOTA
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
pymysql 开启调试模式的实现
2019/09/24 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
介绍一下sql server的安全性
2014/08/10 面试题
UNIX特点都有哪些
2016/04/05 面试题
自荐信的五个重要部分
2013/10/29 职场文书
六五普法规划实施方案
2014/03/21 职场文书
分公司经理任命书
2014/06/05 职场文书
人事行政专员岗位职责
2014/07/23 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
用Python制作灯光秀短视频的思路详解
2021/04/13 Python
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS
PyTorch中的torch.cat简单介绍
2022/03/17 Python