当前位置: 首页 > 面试题库 >

可以将xhr.onreadystatechange替换为AJAX调用的xhr.onload吗?

羊毅庵
2023-03-14
问题内容

我只需要支持主要的现代浏览器(IE10 +,FF,Chrome,Safari)

我可以简化我的代码库吗?

从:

xhr.onreadystatechange = function () {
    if (this.readyState === 4) {
        if (this.status === 200) {
            o.callback(xhr.responseText);
        } else {
            return false;
        }
    } else {
        return false;
    }
};

至:

xhr.onload = function (test) {
    o.callback(xhr.responseText);
};

我认为MDN文档在这方面并不明确。

澄清:

我选择不使用框架。


问题答案:

也许你看看这个,一看W3C:XMLHttpRequest的是,如果你的浏览器支持xhr.onload相同。需要XMLHttpRequest 2)

您还可以编写一个包装函数来模拟xhr.onload(如果不存在)。(我认为您需要覆盖XMLHttpRequest.prototype.onload =function(args){//calling onreadystatechanges somehow})。如果您仅支持使用xhr.onload的现代浏览器-最好的解决方案是使用 框架



 类似资料:
  • 我这里有个问题。当我使用ajax传递一个包含"的参数给我的控制器时,它被一个空格所取代。 例如,我将使用ajax传递value=。当我在控制器中使用System.out.println()时,它会显示。我试过使用其他特殊字符,但似乎没有问题。 请帮忙。提前谢谢。

  • 在PyCharm中,当我写道: 它说“Function call can be replacement with set literal”,所以它将它替换为: 这是为什么?Python中的与字典不同? 如果它想优化这个,为什么这个更有效?

  • 我喜欢的,我觉得很酷的东西 有人能告诉我我没意见吗?也许很酷,但成本很高?我不知道.多谢.

  • 问题内容: 我正在创建一些使用ajax来获取页面信息的插件。现在有不同的插件执行不同的功能。 所有插件都需要独立使用,但是我还想添加一些功能,使其可以很好地协同工作。 所有不同的插件都有自己的JavaScript文件和功能。就HTTP请求而言,这是没有问题的,因为大多数人都有插件,这些插件可以在网站打开时将所有文件合并为一个。 - 现在我的问题。正如我所说的,不同的插件会在网站的不同部分产生作用。

  • 我有一个实现可调用接口的类。我想为类调度一个任务,使用schduledExecutorService接口的schduleAtFixed速率方法。但是需要一个可运行的对象作为它可以调度的命令。 因此,我需要某种方法来将可调用转换为可运行。我试过简单的铸造,但不起作用。 示例代码:

  • 问题内容: 我正在使用 EclipseLink的JAXB实现的一些非标准扩展,并且要启用该实现,必须使用jaxb.properties对其进行配置。效果很好。 但是,由于生成错误,属性文件未包含在正确的位置,从而导致使用默认的JAXB,该文件没有任何错误,只是继续解析XML文件,忽略了非标准扩展名,给我留下了一个非工作bean。 为了使它更加健壮,我想摆脱属性文件,并在代码中指定上下文配置。由于它