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

前端之家收集整理的这篇文章主要介绍了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,因为它包含了许多这些细节.

猜你在找的Ajax相关文章