javascript - 普通 javascript beforeSend 和成功

标签 javascript jquery

在 jQuery 中,当某些东西正在加载时我可以这样做:

$.ajax({
  url: "/answer_checker.php",
  global: false, type: "POST", 
  data: ({...clipped...}), 
  cache: false,
  beforeSend: function() {
    $('#response').html("<img src='/images/loading.gif' />");
  },
  success: function(html) {
    $('#response').html(html);
  }
}

如何在纯 javascript 中应用 beforeSend 和 success?我目前有这个:

function processGeneric() {
setTimeout(function () {
    if (xmlHttpObject.readyState === 0 || xmlHttpObject.readyState === 4) {
        xmlHttpObject.open("GET", requestLink, true);
        xmlHttpObject.onreadystatechange = function () {//some code to handle here};
        xmlHttpObject.send(null);
    }
}, timeout);
}

最佳答案

您创建一个函数来接受您想要的回调以及其他 ajax 选项,然后具有该函数:

  1. 调用“发送前”回调

  2. 进行 ajax 调用,which is well-covered in this other question and its answers

  3. 调用完成后,调用完成回调

大致是这样的:

function processGeneric(url, beforeSend, completion) {
    var xhr;

    xhr = new XMLHttpRequest();
    xhr.onreadstatechange = function() {
        if (xhr.readyState === 0 || xhr.readyState === 4) {
            if (completion) {
                completion(xhr);
            }
            done();
        }
    };
    xhr.open("GET", url, true);
    if (beforeSend) {
        if (beforeSend(xhr) === false) {
            done();
            return;
        }
    }
    xhr.send(null);
    return xhr;

    function done() {
        xhr.onreadystatechange = null;
        xhr = undefined;
    }
}

关于javascript - 普通 javascript beforeSend 和成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29164049/

相关文章:

javascript - 本地网络上的 Mobile Phonegap 应用程序

javascript - 如何应用带有 jquery 对象作为参数的 jquery 函数

javascript - 为什么jQuery或诸如getElementById之类的DOM方法找不到元素?

javascript - 将 span 元素对齐到 div 的左侧

javascript - 单击 RadioButton 调用 javascript 函数

javascript - Accordion 菜单在页面加载时关闭

如果 div 的同级包含特定的文本字符串,jQuery 会更改该 div 的文本

javascript - Node + Express + Swig/将本​​地 json 文件传递​​给模板

javascript函数返回表单输入元素不起作用

javascript - 使用 javascript 正则表达式列出 C++ 中函数的参数