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("&");
        };
    })();

  • 相关阅读:
    探索ASP.NET MVC5系列之~~~3.视图篇(下)---包含常用表单和暴力解猜防御
    探索ASP.NET MVC5系列之~~~2.视图篇(上)---包含XSS防御和异步分部视图的处理
    SVN:Previous operation has not finished; run 'cleanup' if it was interrupted
    探索ASP.NET MVC5系列之~~~1.基础篇---必须知道的小技能
    MVC:The name 'Scripts' does not exist in the current context
    Dapper.Contrib:GetAsync<T> only supports an entity with a [Key] or an [ExplicitKey] property
    Dapper扩展之~~~Dapper.Contrib
    AutoFac在项目中的应用
    群福利:百度云管家-本地SVIP
    【声明】前方不设坑位,不收费!~ 我为NET狂官方学习计划
  • 原文地址:https://www.cnblogs.com/Jabin/p/5873298.html
Copyright © 2011-2022 走看看