Javascript jqueryajax不显示和隐藏loader div
我使用jquery ajax函数调用php代码,但我希望在发送请求时显示loader div,在完成请求后隐藏div。出于测试目的,我使用sleep(5)方法保持php执行5秒,显示我是否可以看到这个加载程序。它不适合我,我尝试了以下代码 第一次尝试Javascript jqueryajax不显示和隐藏loader div,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我使用jquery ajax函数调用php代码,但我希望在发送请求时显示loader div,在完成请求后隐藏div。出于测试目的,我使用sleep(5)方法保持php执行5秒,显示我是否可以看到这个加载程序。它不适合我,我尝试了以下代码 第一次尝试 show_loader(); $.ajax( { async: false, url: "bindanswerposts.php", data: "sessuserid="+sessuserid+"
show_loader();
$.ajax(
{
async: false,
url: "bindanswerposts.php",
data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
type: "POST",
success: function(resp)
{
hideloader();
},
error: function(e)
{
hideloader();
}
});
$(document).ajaxStart(function(){
showloader();
});
$(document).ajaxComplete(function(){
hideloader();
});
$.ajax(
{
async: false,
url: "bindanswerposts.php",
data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
type: "POST",
success: function(resp)
{
},
error: function(e)
{
}
});
$.ajax(
{
async: false,
url: "bindanswerposts.php",
data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
type: "POST",
beforeSend: function() {
showloader();
},
complete: function() {
hidloader();
},
success: function(resp)
{
},
error: function(e)
{
}
});
第二次尝试
show_loader();
$.ajax(
{
async: false,
url: "bindanswerposts.php",
data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
type: "POST",
success: function(resp)
{
hideloader();
},
error: function(e)
{
hideloader();
}
});
$(document).ajaxStart(function(){
showloader();
});
$(document).ajaxComplete(function(){
hideloader();
});
$.ajax(
{
async: false,
url: "bindanswerposts.php",
data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
type: "POST",
success: function(resp)
{
},
error: function(e)
{
}
});
$.ajax(
{
async: false,
url: "bindanswerposts.php",
data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
type: "POST",
beforeSend: function() {
showloader();
},
complete: function() {
hidloader();
},
success: function(resp)
{
},
error: function(e)
{
}
});
第三次尝试
show_loader();
$.ajax(
{
async: false,
url: "bindanswerposts.php",
data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
type: "POST",
success: function(resp)
{
hideloader();
},
error: function(e)
{
hideloader();
}
});
$(document).ajaxStart(function(){
showloader();
});
$(document).ajaxComplete(function(){
hideloader();
});
$.ajax(
{
async: false,
url: "bindanswerposts.php",
data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
type: "POST",
success: function(resp)
{
},
error: function(e)
{
}
});
$.ajax(
{
async: false,
url: "bindanswerposts.php",
data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
type: "POST",
beforeSend: function() {
showloader();
},
complete: function() {
hidloader();
},
success: function(resp)
{
},
error: function(e)
{
}
});
但是以上方法都不起作用,请帮帮我。但在普通javascript中,ajaxRequest运行良好
ajaxRequest.onreadystatechange = function()
{
if(ajaxRequest.readyState == 1)
{
showloader();
}
if(ajaxRequest.readyState == 4)
{
hideloader();
}
}
尝试使用ajax的
complete
方法
确保您的圆顶中有加载器
<div id="loading" style="display: none"><img src="loading.gif"></div>
编辑删除async=false
,它应该可以工作
- 对于同步ajax调用,它没有。Ajax首先被执行,所有其他进程都被阻塞/排队
试试这个,它可能对你有用,首先创建一个加载器gif图像,ypu希望将加载器默认css属性显示为display:none
<img src="loader.gif" class="loader" style="display:none;">
你能发布showloader和hideloader函数吗?你面临的问题是什么?控制台中有错误吗?没有错误,如果我使用调试器,它工作正常。但如果不使用调试器,则无法工作。请尝试将代码放入$(document).ready(function(){})中;并删除async false来检查它,如果它仍然有问题,只需创建JSFIDLE来检查确切的问题和您的代码。非常感谢,当我删除async:false时,它工作得非常好。请更新你的答案,我会勾选你的答案并投票。