如何使用ajax实现加载显示

时间:2013-12-07 13:38:01

标签: javascript jquery ajax loading

我使用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函数,这确实有效。这是为什么?

2 个答案:

答案 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);
        }
    });
}