gpt4 book ai didi

javascript-在ajax调用中显示加载器并在成功后隐藏

转载 作者:行者123 更新时间:2023-11-30 15:36:43 26 4
gpt4 key购买 nike

我在这里有点困惑。

我正在用 javascript 创建一个表单并将值发布到 php 页面 (submit.php),如果 php 页面返回成功,我会将用户重定向到另一个页面 success .php

var url = 'submit.php';
var furl = 'success.php';
var formdata = new FormData();
formdata.append("name", 'John');
formdata.append('staffid',123);
formdata.append('csrf_test_name',csrf_token);

var ajax = new XMLHttpRequest();
ajax.addEventListener("load", function(event) {
uploadcomplete(event,furl);
}, false);
ajax.open("POST", url);
ajax.send(formdata);

function uploadcomplete(event,furl) {
var response = event.target.responseText.trim();
if(response=='Failed') {
alert('Failed');
} else {
alert('Success');
window.location.replace(furl);
}
}

function showLoader(){
document.getElementById('loader').style.display = 'block';
}

function hideLoader(){
document.getElementById('loader').style.display = 'none';
}

事情是,我想在表单数据正在处理时显示一个加载器图标,并在完成时隐藏它。为此,我创建了两个函数 showLoader()hideLoader()

我的问题是,我应该在哪里包含这些函数?

最佳答案

您可以将它与 readyState 一起使用与 onreadystatechange 事件:

var ajax = new XMLHttpRequest();
ajax.onreadystatechange = function(){
if(ajax.readyState === 0){
showLoader();
}else if(ajax.readyState === 4){
hideLoader();
}
};

或者在您的代码中,您可以在此处调用它们:

var ajax = new XMLHttpRequest();
ajax.addEventListener("load", function(event) {
uploadcomplete(event,furl);
hideLoader(); //<------------------hide the loader here when done.
}, false);
ajax.open("POST", url);
showLoader(); // <------------------call and show loader here.
ajax.send(formdata);

关于javascript-在ajax调用中显示加载器并在成功后隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41423802/

26 4 0
文章推荐: javascript - 跨浏览器addEventListener
文章推荐: javascript - 我们可以在类中定义的 redux Action Creators 上使用 bindActionCreators() 吗?
文章推荐: javascript - 如何使用 AngularJS 添加不同的背景颜色
文章推荐: javascript - 如何将选中的复选框数据附加到html
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com