我使用ajax从php文件返回数据。但如果装载显示器出现,就像动画gif或其他东西一样,它会很好看。我有一个使用文本,但注意到显示。有没有比我更好的方式。
function small_loader(t){
if(t === 'show'){
$('#sub_menu').html('Loading');
}else{
$('#sub_menu').html('');
}
}
function loadtools(t){
var tools = 'tools/'+t+'.php';
$.ajax({
url:tools,
type:'POST',
beforeSend: function(){
small_loader('show');
},
success: function(e){
$('#sub_menu').html(e);
},
complete:function(){
small_loader('hide');
}
});
}
目前,php文件上只有一个for循环,用于回送带有kine中断的数字以进行测试。如果我关闭small_loader函数,这确实有效。这是为什么?
答案 0 :(得分:0)
你将#sub_menu设置为'Loading ...'然后把AJAX的东西放在那里,然后在你禁用加载器的时候用''覆盖它,覆盖ajax响应。
尝试使用不同的div作为加载程序,也可以隐藏#sub_menu并在完成后显示它。
答案 1 :(得分:0)
你应该在你的HTML中添加你的加载器(在正确的地方,比如启动ajax请求的按钮旁边),在css(display:none)中隐藏它,在发送请求之前显示它并在响应返回时隐藏它:
function loadtools(t){
var tools = 'tools/'+t+'.php';
$.ajax({
url:tools,
type:'POST',
beforeSend: function(){
$("#your_loader_wrapper_id").show();
},
success : ...,
error : ...,
complete: function(e){
$("#your_loader_wrapper_id").hide();
$('#sub_menu').html(e);
}
});
}