——————————————————————————

<script type="text/javascript">
            //定义个一个function,作为一个Ajax类
            //它的构造函数需要提供以下参数列表
            function Ajax(url,callback,params,method){
                this.method = method;    //对象的ajax请求方法
                this.url = url;            //对象的ajax请求url
                this.params = params;    //对象的ajax请求参数
                this.callback = callback;//对象的ajax请求回调
                this.send = function(){    //请求发送函数
                    if(!this.method)    //当没有提供请求方法的时候,默认为GET
                        this.method = 'GET';
                    if(method == 'POST'){//如果是POST方法
                        //用POST方法,参数可以通过send方法的参数写到请求的内容流中去
                        window.Ajax.client.open(this.method,this.url,true);
                        window.Ajax.client.send(params);//调用send函数,把参数写的请求内容中
                    }else if(method == 'GET'){//如果是GET方法
                        //用GET请求方法,参数就只能放在URL的后边,这种方式受到URL长度限制
                        window.Ajax.client.open(this.method, this.url + "?" + params,true);
                        window.Ajax.client.send();
                    }
                    //请求发出以后,就开始监听client的状态变化
                    window.Ajax.client.onreadystatechange = function(){
                        //如果成功返回,则调用预定义的回调函数
                        if (window.Ajax.client.readyState==4 && window.Ajax.client.status==200){
                            callback();//调用回调函数
                        }
                    };
                };
                //这里,把Ajax的client属性作为一种静态变量,类似于单例模式
                if(!window.Ajax.client){
                    // 判断是否支持ActiveX控件,老版本的IE浏览器就需要使用ActiveXObject来创建
                    if(window.ActiveXObject){
                        // 通过实例化ActiveXObject的一个新实例来创建XMLHTTPRequest对象
                        window.Ajax.client = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    // 其他的大多数浏览器都支持本地javascript对象
                    else if(window.XMLHttpRequest){
                        // 创建XMLHTTPRequest的一个实例(本地javascript对象)
                        window.Ajax.client = new XMLHttpRequest();
                    }
                }
            }
            //button的click事件函数
            function sendAjax(){
                //创建一个Ajax对象,然后提供必要的参数
                var ajax = new Ajax('test001.txt',function(){
                    alert(window.Ajax.client.responseText);
                },'','GET');
                //发送请求
                ajax.send();
            }
</script>——————————————————————————————

<body style="text-align:center">    
        <input type="button" value="Send" onclick="sendAjax();"/>
 </body>

——————————————————————————————

Ajax应用-定义一套自己的Ajax框架的更多相关文章

  1. Ajax请求(二)--JQuery的Ajax请求方法

    JQuery库的Ajax请求的几种方法: 1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. 参数含义: url (String ...

  2. ajax 中操作this,需要先在ajax的外面给this重新定义为_this!!

    //设置为默认收货地址 $(document).on('tap','.right_none',function(){ var _this = $(this); //只有这样定义,在ajax的内部才可以 ...

  3. JavaScript封装Ajax工具函数及jQuery中的ajax,xhr在IE的兼容

    封装ajax工具函数 首先要思考:1.为什么要封装它?提高开发效率2.把一些不确定的情况考虑在其中 a. 请求方式 b. 请求地址 c. 是否异步 d. 发送参数 e. 成功处理 f. 失败处理3.确 ...

  4. Web的Ajax应用开发模式(二)——Ajax开发模式分析

    寄语: 前天在查看一些公司的招聘要求时,看到有公司要求测试人员了解Ajax,故写此博文旨在帮助测试人员提高自身技术知识水平,愿与广大测试同胞共同进步.(欢迎纠错!!!) Web应用的传统开发模式总结: ...

  5. 深入理解ajax系列第九篇——jQuery中的ajax

    前面的话 jQuery提供了一些日常开发中需要的快捷操作,例如load.ajax.get和post等,使用jQuery开发ajax将变得极其简单.这样开发人员就可以将程序开发集中在业务和用户体验上,而 ...

  6. Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求

    Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 >>>>>>>>>>>>>>&g ...

  7. 详解Ajax请求(三)——jQuery对Ajax的实现及serialize()函数对于表单域控件参数提交的使用技巧

    原生的Ajax对于异步请求的实现并不好用,特别是不同的浏览器对于Ajax的实现并不完全相同,这就意味着你使用原生的Ajax做异步请求要兼顾浏览器的兼容性问题,对于java程序员来讲这是比较头疼的事情, ...

  8. Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求

    Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求   Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java ...

  9. 从零开始学 Web 之 Ajax(六)jQuery中的Ajax

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

随机推荐

  1. react总结

    在我的工作用到的最多就是backbone,其次还会有ember/Ext,backbone目前能实现我们team所需要实现的功能,因为我们的component不需要频繁的操作Dom,当后台API返回数据 ...

  2. Android Studio Gradle更新的解决办法

    环境: Win7_64旗舰版.Android Studio2.1.1 问题描述: 在打开Android Studio项目的时候,会下载项目对应版本的gradle,由于是国外网站导致更新较慢,该版本是在 ...

  3. CachedRowSet的用法

    String sql="select item_code from xt_dictionary_item where type_id='32' and parent_itemid='0' o ...

  4. 安装Postgresql踩过的坑

    PG安装相关的 1  系统语言的设置 PG的安装,和系统的locale设置有一定的关系,需要设置,如在.profile或.bashrc中 也可以运行下面的命令: dpkg-reconfigure lo ...

  5. Busy Beavers(暴力模拟)

    由于排版问题,题目无法显示,可以到 http://7xjob4.com1.z0.glb.clouddn.com/e4872a15819b6bf9d1e5250bacc2a30b  查看 题目大意是有只 ...

  6. HP Autonomy KeyView入门使用&Maven打包流程

    正文:使用自带的KeyView.jar可能报各种各样的错误,比如no manifest,找不到main方法等等,这里需要自己把需要用到的Filter类和KeyView.jar一起打包,并修改manif ...

  7. Paint on a Wall

    Paint on a Wall 题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=4012 搜索+状态压缩 这题刚开始以为是dp(之前写过墙是一 ...

  8. Maven使用笔记

    Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model), 一组标准插件(生命周期各阶段是绑定插件中的目标来完成项目构建工作) 一个项目生命周期(Proje ...

  9. <? extends T>和<? super T>

    转自:Java泛型中extends和super的区别? 另,问题来源:Java 泛型 <? super T> 中 super 怎么 理解?与 extends 有何不同? <? ext ...

  10. 认识System,System32,Syswow64

    有时候人们怀疑一个系统的底层结构能否保证这个系统在被使用时达到安全而高效,64位版本的Windows在这方面就比较完美.Windows XP和Windows Server 2003都是运行64位硬件的 ...