zoukankan      html  css  js  c++  java
  • Ajax的js库分析简化版

    Ajax jquery的库的简化版本

    (function(){
        //面向外界的唯一变量接口!
        var myajax = window.myajax = {};
        //作者、版本号等等信息
        myajax.author = "考拉";
        myajax.version = "1.0.0";

        //这个对象有两个属性,get、post属性,都是函数
        myajax.get = function(URL,queryJSON,callback){
            //创建xhr对象,解决兼容问题
            if(window.XMLHttpRequest){
                var xhr = new XMLHttpRequest();
            }else{
                var xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
            //结果返回之后做的事情
            xhr.onreadystatechange = function(){
                if(xhr.readyState == 4){
                    if(xhr.status >= 200 && xhr.status < 300 || xhr.status == 304){
                        callback(null,xhr.responseText);
                    }else{
                        callback(new Error("没有找到请求的文件"),undefined);
                    }
                }
            }
            //拼接字符串
            var querystring = myajax._queryjson2querystring(queryJSON);
            //配置
            xhr.open("get" , URL + "?" + querystring , true);
            //发送
            xhr.send(null);
        };

        //这个对象有两个属性,get、post属性,都是函数
        myajax.post = function(URL,queryJSON,callback){
            //创建xhr对象,解决兼容问题
            if(window.XMLHttpRequest){
                var xhr = new window.XMLHttpRequest();
            }else{
                var xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
            //结果返回之后做的事情
            xhr.onreadystatechange = function(){
                if(xhr.readyState == 4){
                    if(xhr.status >= 200 && xhr.status < 300 || xhr.status == 304){
                        callback(null,xhr.responseText);
                    }else{
                        callback(new Error("没有找到请求的文件"),undefined);
                    }
                }
            }
            //拼接字符串
            var querystring = myajax._queryjson2querystring(queryJSON);
            //配置
            xhr.open("post" , URL , true);
            //发送
            xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
            xhr.send(querystring);
        };

        //内部函数,查询json变为查询字符串
        //输入一个{"name":"kaola","age":18,"sex":"男"}
        //返回一个name=kaola&age=18&sex=%E8%C6%B6
        myajax._queryjson2querystring = function(json){
            var arr = [];    //结果数组
            for(var k in json){
                arr.push(k + "=" + encodeURIComponent(json[k]));
            }
            return arr.join("&");
        };
    })();

  • 相关阅读:
    Verilog非阻塞赋值的仿真/综合问题 (Nonblocking Assignments in Verilog Synthesis)上
    异步FIFO结构及FPGA设计 跨时钟域设计
    FPGA管脚分配需要考虑的因素
    An Introduction to Delta Sigma Converters (DeltaSigma转换器 上篇)
    An Introduction to Delta Sigma Converters (DeltaSigma转换器 下篇)
    中国通信简史 (下)
    谈谈德国大学的电子专业
    中国通信简史 (上)
    Verilog学习笔记
    Verilog非阻塞赋值的仿真/综合问题(Nonblocking Assignments in Verilog Synthesis) 下
  • 原文地址:https://www.cnblogs.com/Jabin/p/5873298.html
Copyright © 2011-2022 走看看