原生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 相关文章推荐
jquery slibings选取同级其他元素的实现代码
Nov 15 Javascript
JS图像无缝滚动脚本非常好用
Feb 10 Javascript
jQuery带箭头提示框tooltips插件集锦
Nov 17 Javascript
JQuery实现动态添加删除评论的方法
May 18 Javascript
浅谈Javascript数组索引
Jul 29 Javascript
node.js从数据库获取数据
May 08 Javascript
bootstrap modal弹出框的垂直居中
Dec 14 Javascript
浅谈js中的this问题
Aug 31 Javascript
JavaScript requestAnimationFrame动画详解
Sep 14 Javascript
在vue-cli中组件通信的方法
Dec 16 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
Jun 11 Javascript
微信小程序实现天气预报功能(附源码)
Dec 10 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 之入门篇
2006/12/04 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
2011/07/28 PHP
php检查日期函数checkdate用法实例
2015/03/19 PHP
php+html5实现无刷新图片上传教程
2016/01/22 PHP
PHP 信号管理知识整理汇总
2017/02/19 PHP
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
javascript中打印当前的时间实现思路及代码
2013/12/18 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
2016/05/12 Javascript
微信小程序 在Chrome浏览器上运行以及WebStorm的使用
2016/09/27 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
微信小程序商品详情页规格属性选择示例代码
2017/10/30 Javascript
详解vue服务端渲染浏览器端缓存(keep-alive)
2018/10/12 Javascript
在element-ui的select下拉框加上滚动加载
2019/04/18 Javascript
vue-router二级导航切换路由及高亮显示的实现方法
2019/07/10 Javascript
Python遍历pandas数据方法总结
2018/02/09 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
2020/01/20 Python
python lambda函数及三个常用的高阶函数
2020/02/05 Python
scrapy处理python爬虫调度详解
2020/11/23 Python
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
人事部主管岗位职责
2013/12/26 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
工作态度不端正检讨书
2014/10/04 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
python中os.path.join()函数实例用法
2021/05/26 Python
OpenCV-Python实现轮廓拟合
2021/06/08 Python
详解Oracle块修改跟踪功能
2021/11/07 Oracle
Python Pygame实战在打砖块游戏的实现
2022/03/17 Python
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis