XMLHttpRequest:变量'功能上的效果

XMLHttpRequest:variable'effect in function

本文关键字:功能上 变量 XMLHttpRequest      更新时间:2023-09-26

变量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和正常工作的代码。它通常只是创建一个匿名函数吗?

函数的用途

它只是检查符号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 (typeof XMLHttpRequest == "undefined")将始终返回false

所以每次你调用这个函数时都会执行这行

return new XMLHttpRequest();

并且它每次都会创建一个XMLHttpRequest实例。


什么是XMLHttpRequest

XMLHttpRequest对象用于与服务器交换数据在幕后它可以在不重新加载网页的情况下更新网页。它在页面加载后从服务器请求数据,并在页面加载之后从服务器接收数据。

简单地说,它用于对服务器进行AJAX调用。您可以在此处了解有关XMLHttpRequest的更多信息

希望这能回答你的问题。

这段代码是一个polyfill,它为旧版本的InternetExplorer添加了XMLHttpRequest支持。旧版本的IE使用专有的ActiveX接口,而不是标准的XMLHttpRequest API。

IE7及以上版本支持标准的XMLHttpRequest对象。除非您必须支持IE 6或更低版本,否则您应该可以取消此代码。