ajax – 重用XMLHttpRequest对象还是创建一个新对象?

前端之家收集整理的这篇文章主要介绍了ajax – 重用XMLHttpRequest对象还是创建一个新对象?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
搜索stackoverflow但有矛盾的答案:

Why should I reuse XmlHttpRequest objects?

Ajax-intensive page: reuse the same XMLHttpRequest object or create new one every time?

另外,有一个关于w3schools.com的建议:

If you have more than one AJAX task on your website,you should create
ONE standard function for creating the XMLHttpRequest object,and call
this for each AJAX task.

为什么这个建议?而是在我的页面上使用一个全局的XMLHttpRequest对象来处理所有的Ajax任务。

你误解了W3School的建议。我将突出相关部分:

If you have more than one AJAX task on your website,you should create ONE standard function for creating the XMLHttpRequest object,and call this for each AJAX task.

它表示您使用一个AJAX函数获取请求。此功能将处理IE和其他浏览器之间的不一致。符合标准的浏览器中的XMLHttpRequest,以及IE中的ActiveXObject。

我建议使用多个XHR对象。使用一个全局xhr对象,您的应用程序只能在给定时间处理一个请求。这也很容易出错(例如XMLHttpRequest launches multiple times without initiating the onreadystatechange function)。

W3schools的意思是:

function createXHR() {
    try {
        return new XMLHttpRequest();
    } catch (e) {
        try {
            return new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {
            return new ActiveXObject("Msxml2.XMLHTTP");
        }
    }
}
var xhr = createXHR();
xhr.open('get','/test',true);
xhr.send();

虽然最好创建一个处理请求的函数,如jQuery.ajax

原文链接:https://www.f2er.com/ajax/160310.html

猜你在找的Ajax相关文章