微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 管理多个ajax请求的正确方法是什么?

我们都在 AJAX教程中看到了一些发送一些数据的例子.他们都(或多或少)看起来像:
var http = createRequestObject(); // shared between printResult() and doAjax()

function createRequestObject() { /* if FF/Safari/Chrome/IE ... */ ... }

function printResult() 
{ 
    if (http.readyState == 4) { ... } 
}

function doAjax() {
    var request = 'SomeURL';
    http.open('post',request);
    http.onreadystatechange = printResult;
    data = ...; // fill in the data
    http.send(data);
}

// trigger doAjax() from HTML code,by pressing some button

这是我不完全理解的场景:如果按钮被快速按下几次怎么办?应该doAjax()以某种方式重新初始化http对象?如果对象被重新初始化,那么已经播出的请求会发生什么?

PS:主持人:这个问题可能与社区维基有关.如此处所述(https://meta.stackexchange.com/questions/67581/community-wiki-checkbox-missing-in-action) – 如果我做对了 – 请恰当地标记这个问题.

解决方法

由于AJAX具有异步特性,因此每次按下按钮都会引发异步事件,从而将某些数据从FROM / TO服务器获取/ POST.您提供一个回调,因此它将在服务器完成处理数据时被触发多次.

认情况下这是正常行为,您不应重新初始化http对象.如果要呈现多个发送操作,则必须手动执行此操作(例如,在首次调用时禁用按钮).

我还建议使用jQuery $.ajax,因为它包含了许多这些细节.

原文地址:https://www.jb51.cc/ajax/157954.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐