2010-12-15 15 views
11

ajax çağrısı çalışırken bir yükleme görüntüsü göstermeye çalışıyorum, ancak beforeSend özniteliğini kullanmak sonuç alanımı değiştirmiyor.JQuery ajax çalışırken gif görüntüsü yükleniyor

$.ajax({ 
    url: "/answer_checker.php", 
    global: false, type: "POST", 
    data: ({...clipped...}), 
    cache: false, 
    beforeSend: function() { 
    $('#response').text('Loading...'); 
    }, 
    success: function(html) { 
    $('#response').html(html); 
    } 
} 

Şimdiden teşekkürler.

+0

Diğer seçenekleriniz nelerdir, örneğin tesadüfen "async: false"? –

+0

'global: false, type:" POST ", data: ({...}), önbellek: false' 'async' kullanmıyorum –

cevap

8

bir çözüm buldum, bu olmayabilir en iyi yolu ama vardır Bu durumda çalıştı. ajax çağrısı aynı içeriği günceller kadar yükleme metin kalır ajax fonksiyonunu çağırmadan önce resonce içeriği ayarlayarak

$('input').keyup(function() { 

    $('#response').text('loading...'); 

    $.ajax({ 
    url: "/answer_checker.php", 
    global: false, type: "POST", 
    data: ({...clipped...}), 
    cache: false, 
    success: function(html) { 
     $('#response').html(html); 
    } 
    }); 
}); 

.

Yanıtlamak için zaman alan herkese teşekkürler.

Alan

+0

Bu, yapmanın kolay ve basit bir yolu, aynı şeyi hep yaparım –

3

Sen Ayrıca aşağıdaki kullanabilirsiniz cache: false

+0

Yanıtladığınız için teşekkürler, kullandığım ekstra seçenekleri ekledim. –

2

sonra virgül eksik gibidir: bunu yapmak için

$('#tblLoading').ajaxStart(function() { $(this).show(); }); 
$('#tblLoading').ajaxComplete(function() { $(this).hide(); }); 
19

Benzer bir sorunla karşılaştım. Sorunumu gidermek için .txt, beforeSend bölümünde .html ile değiştirdim ve durumumu tutan öğeye eklemek için bir html etiketi oluşturdum. Başarı işlevi .text() işlevi tarafından oluşturulan içeriği değiştirmedi, ancak .html() işlevi tarafından oluşturulan içeriğin yerini aldı.

$.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); 
    } 
}