美文网首页
5 js之回调函数

5 js之回调函数

作者: 一枝妖孽 | 来源:发表于2018-05-28 23:25 被阅读0次

实现:以面向对象的形式对ajax请求进行重构

/**
 * 11
 * 原始的 
 */
window.onload = function() {
    document.getElementById("ok").onclick = function() {
        var xmlhttp = ajaxFunction();

        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4) {//响应完毕
                if (xmlhttp.status == 200) {//成功响应
                    alert(xmlhttp.responseText);
                }
            }
        }
        xmlhttp.open("get", "../HelloWorldServlet", true);
        xmlhttp.send(null);
    }

}

// 10
function ajaxFunction() {
    var xmlHttp;
    try { // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    } catch (e) {
        try { // Internet Explorer
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {

            }
        }
    }
    return xmlHttp;
}

/**
 * 以面向对象的形式对ajax请求进行重构
 * 
 * 20
 * 
 */
var ajaxObj = {
    // key value
    xmlhttprequest: '',
    getXMLHttpRequest: function() {
        var xmlHttp;
        try { // Firefox, Opera 8.0+, Safari
            xmlHttp = new XMLHttpRequest();
        } catch(e) {
            try { // Internet Explorer
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e) {
                try {
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch(e) {

                }
            }
        }
        return xmlHttp;
    },
    post: function(ajaxJSON) {
        // 给 request 赋值
        ajaxObj.XMLHttpRequest = ajaxObj.getXMLHttpRequest();
        ajaxObj.XMLHttpRequest.onreadystatechange = function() {
            if(ajaxObj.XMLHttpRequest.readyState == 4) {
                if(ajaxObj.XMLHttpRequest.status == 200) {
                    ajaxJSON.callback(xmlhttp.responseText);
                }
            }
        }
        // 
        ajaxObj.XMLHttpRequest.open(ajaxJSON.method, ajaxJSON.url, true);
        ajaxObj.XMLHttpRequest.send(ajaxJSON.data);

    }
}

/**
 * 在onload的时候调用
 * 21
 */
window.onload = function() {
    ajaxObj.post({
        method: 'post',
        url: '../HelloWorldServlet',
        data: 'a=a',
        callback: function(data) {
            alert(data);
        }
    });
}

相关文章

  • 5 js之回调函数

    实现:以面向对象的形式对ajax请求进行重构

  • JS-回调函数、省份显示

    省份简称与省份全称 js,如何把省份简称转换成省份全称 callback回调函数 JS中回调函数(callback...

  • 07_Node.js Event

    一、回调函数 callback 1、回调函数 Node.js 异步编程的直接体现就是回调,异步编程依托于回调来实现...

  • JavaScript系列之回调函数callback

    JavaScript系列之回调函数callback JavaScript回调函数的使用是很常见的,引用官方回调函数...

  • nodejs笔记2(回调函数和事件循环)

    回调函数 Node.js 异步编程的直接体现就是回调。Node 使用了大量的回调函数,Node 所有 API 都支...

  • 2018-09-26 day25

    1.回顾 1.window 2.document 3.调用匿名函数 4.js事件 js库封装 5.回调函数取事件源...

  • 将CallBack改写成Promise

    CallBack回调函数是js的特色之一, 但CallBack回调方法, 非常容易造成回调地狱(callback ...

  • node.js(六)

    Node.js 回调函数Node.js 异步编程的直接体现就是回调。异步编程依托于回调来实现,但不能说使用了回调后...

  • js 回调函数

    js回调函数 就是把一个函数作为另一个函数的参数 在外部函数调用回调函数来完成某个操作下面看段代码function...

  • js回调函数

    传递函数作为回调很容易把一个函数作为参数传递。

网友评论

      本文标题:5 js之回调函数

      本文链接:https://www.haomeiwen.com/subject/kdwnjftx.html