首页 新闻 搜索 专区 学院

改写一下下面的两个函数

0
悬赏园豆:100 [已解决问题] 解决于 2021-09-16 08:40
function n(e, n) {
		// e 请求的方式 ;
		// n 请求的地址
		var i = new XMLHttpRequest;
		return "withCredentials"  in i ?   i.open(e, n, !0) : "undefined" != typeof XDomainRequest ? (i =new XDomainRequest, i.open(e, n)) : i = null, i
	}
function i(e, n, i, t) {
	return void 0 != e && (void 0 == i && (i = e.sendFinishedCallback), void 0 == t && (t = e
		.sendErrorCallback)), n.onreadystatechange = function() {
		n.readyState === XMLHttpRequest.DONE && 200 === n.status ? i(n.responseText) : n.readyState ===
			XMLHttpRequest.DONE && t(n.responseText)
	}, n
}

把这两个函数改写的简单易懂,最好有注释。

南风晚来晚相识的主页 南风晚来晚相识 | 初学一级 | 园豆:62
提问于:2021-09-14 16:20
< >
分享
最佳答案
0

函数1:

// 这是一段兼容 IE 的发 Ajax 请求的函数
function request(method, url) {
  // e 请求的方式 ;
  // n 请求的地址
  var xhr = new XMLHttpRequest();
  if ("withCredentials" in xhr) {
    return xhr.open(method, url, true);
  }
  if ("undefined" != typeof XDomainRequest) {
    xhr = new XDomainRequest();
    return xhr.open(method, url);
  }
  xhr = null;
  return xhr;
}
/**
 * 这是处理异步请求响应的一个函数
 * @param defaultHandlers 默认的处理函数
 * @param xhr 请求对象
 * @param finishCallback 成功的callback
 * @param errorCallback  异常的callback
 * @returns
 */
function hanldeXhrResponse(
  defaultHandlers,
  xhr,
  finishCallback,
  errorCallback
) {
  // 如果处理函数为空,则采用默认值
  if (defaultHandlers != undefined) {
    if (finishCallback == undefined) {
      finishCallback = defaultHandlers.sendFinishedCallback;
    }
    if (errorCallback == undefined) {
      errorCallback = defaultHandlers.sendErrorCallback;
    }
  }

  // 监控请求的状态变化
  xhr.onreadystatechange = function () {
    // 完成且成功
    if (xhr.readyState === XMLHttpRequest.DONE && 200 === xhr.status) {
      finishCallback(xhr.responseText);
    } else {
      // 仅仅是完成
      if (xhr.readyState === XMLHttpRequest.DONE) {
        errorCallback(xhr.responseText);
      }
    }
  };

  return xhr;
}
收获园豆:100
幻天芒 | 高人七级 |园豆:36781 | 2021-09-15 23:34
其他回答(2)
0

怎么看着像是编译以后的代码?

顾晓北 | 园豆:10633 (专家六级) | 2021-09-14 16:44

咋个给他反编译回去了

支持(0) 反对(0) 南风晚来晚相识 | 园豆:62 (初学一级) | 2021-09-14 19:55
0

大概是?
n: new一个XMLHttpRequest对象,是否包含withCredentials的参数 ?是,则调用i方法,否则,判断XDomainRequest 的类型是否是undefined,是,则i赋值为new XDomainRequest,返回i.open(e, n)的结果,否则,置i为null,返回i

void 0是什么意思?

人间春风意 | 园豆:750 (小虾三级) | 2021-09-14 19:54

不知道,我在改写人家的

支持(0) 反对(0) 南风晚来晚相识 | 园豆:62 (初学一级) | 2021-09-14 19:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册