变量XMLHttpReqeust
对以下代码有什么影响:
function getHTTPObject() {
if (typeof XMLHttpRequest == "undefined") {
XMLHttpRequest = function () {
try {
return new ActiveXObject('Msxml2.XMLHTTP.6.0');
} catch (e) {
}
try {
return new ActiveXObject('Msxml2.XMLHTTP.3.0');
} catch (e) {
}
try {
return new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
}
return false;
}
}
return new XMLHttpRequest();
}
我试图删除变量XMLHttpReqeust
并且代码正常工作。它是否只是通常创建一个匿名函数?
答案 0 :(得分:0)
您的功能目的
只是检查是否定义了符号XMLHttpRequest 浏览器或不作为一种手段,看看这个浏览器是否原生 是否支持Ajax调用。
此外我建议删除此代码,除非您有一些非常奇怪的要求支持IE6,因为不再需要它。
举个例子:
var x = 3;
console.log(typeof x); // "number"
console.log(typeof y); // "undefined"
// And, in any modern browser
console.log(typeof XMLHttpRequest); // "function"
// In IE6
console.log(typeof XMLHttpRequest); // "undefined"
此类检查是否存在 XMLHttpRequest 适用于非常旧的Microsoft浏览器(IE6及更早版本)且不再需要,可以安全删除。
您的功能实际上在做什么
此功能始终创建新XMLHttpRequest()
对象。
正如 if条件 if (typeof XMLHttpRequest == "undefined")
将始终返回false
因此,每次调用此函数时都会执行此行
return new XMLHttpRequest();
并且每次都会创建一个 XMLHttpRequest 实例。
什么是XMLHttpRequest?
XMLHttpRequest对象用于与服务器交换数据 在幕后。它可以在不重新加载页面的情况下更新网页。它在页面加载后从服务器请求数据,并在页面加载后从服务器接收数据。
简单来说,它用于对服务器进行 AJAX 调用。您可以详细了解 XMLHttpRequest here
希望这会回答你的问题。
答案 1 :(得分:0)
此代码是一个polyfill,它将XMLHttpRequest支持添加到旧版本的Internet Explorer中。旧版本的IE使用专有的ActiveX接口而不是标准的XMLHttpRequest API。
IE 7及更高版本支持标准的XMLHttpRequest对象。除非您必须支持IE 6或以下,否则您应该可以取消此代码。