gpt4 book ai didi

javascript - 创建 XMLHttpRequest 的遗留代码仍然有效吗?

转载 作者:行者123 更新时间:2023-11-29 10:20:58 27 4
gpt4 key购买 nike

多年来,我一直使用相同的代码片段来创建 XMLHttpRequest 对象:

var tReq = (function () {
var tAn;
if (window.XMLHttpRequest) {
tAn = new XMLHttpRequest();
} else if (window.ActiveXObject) try {
tAn = new ActiveXObject("MSXML2.XMLHTTP");
} catch (ex) {
tAn = new ActiveXObject("Microsoft.XMLHTTP");
}
return tAn;
}());

我已经使用该代码很长时间了,以至于我不知道它是否仍然是最新的。

这段代码是否仍然在每个浏览器中创建 XMLHttpRequest,或者现在是否有更有效的解决方案(要求 jQuery)?

最佳答案

我记得大约四五年前使用过这段代码?当这项技术首次开发出来并且仍在争论不休时(有人记得不要禁用后退按钮的论点吗?),它仍然得到了不完整的支持;这大约是 Firefox 1/2。如果我还记得的话,这起源于一个 MS Outlook 库,用于提高 Outlook 客户端的响应速度,最终该技术渗透到浏览器中。

话虽如此,最后两行是遗留的;所有现代浏览器都支持普通的 XMLHttpRequest,无论如何,最后两个浏览器只适用于 IE。将来,这可能会缩短为 HTTPAsyncRequest 或其他任何内容,但事实是,除非您需要支持 IE6,否则您实际上只需要第一行。

即:

To support versions of Windows Internet Explorer prior to Internet Explorer 7, use the following function to get the XMLHttpRequest object.

function getXMLHttpRequest()  {
if (window.XMLHttpRequest) {
return new window.XMLHttpRequest;
}
else {
try {
return new ActiveXObject("MSXML2.XMLHTTP.3.0");
}
catch(ex) {
return null;
}
}
}

http://msdn.microsoft.com/en-us/library/ie/ms535874%28v=vs.85%29.aspx

所以,您真的不再需要它了。正如 Truth 所说,随着时间的推移,jQuery、Angular 等库将把它纳入后台。但是直接访问也没有问题。

也值得链接到 MSDN's About Native XMLHTTP ,由 RobW 在问题下的评论提供。其要点是组策略或单个 IE 策略可能会禁用 native XMLHttpRequest,因此启用 ActiveX 作为解决方法可能仍然有用,尽管(至少在这一点上)禁用它似乎有点蜡笔锡纸,同时允许更多“有问题的”ActiveX 子系统。 可能对此的解释是带宽、并发连接或其他一些网络级问题。很奇怪。

关于javascript - 创建 XMLHttpRequest 的遗留代码仍然有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12133402/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com