Can Ben ajax sayfa işlenirken ekrana çıktı / floş bilgi?

1 Cevap php

Ben sayfamda bir tablodan çekti kayıtların listesini görüntülemek gerekir. Ajax çalışıyor (Ben veritabanını sorgulamak ve ana sayfada içindeki tüm verileri koymak) ama ben çok fazla kayıt varsa veri dolana kadar askıda olacak (500 + demek), o sayfaya geri gönderilir ve doğru görüntülenir.

Ben yerine tamamlanıncaya kadar beklemek zorunda olmak, onları alırken sayfada kayıtları görüntülemek için muktedir istiyorum. I) (floş ile çalışıyorum; Uzak (ajax) sayfa içinde ama tam veri yüklenene kadar hala bekler.

Bu benim şu anda ajax sayfa içinde ne var:

Başında:

@apache_setenv('no-gzip', 1);
@ini_set('zlib.output_compression', 0);
@ini_set('implicit_flush', 1);
for ($i = 0; $i < ob_get_level(); $i++) { ob_end_flush(); }
 ob_implicit_flush(1);

Sonra bir yankı çağrı var zaman:

ob_flush();

Ben yalnız ajax sayfa yüklediğinizde veritabanından onları okurken ... Şimdi bu kayıtları listeler. Ben Ajax ile aynı sayfayı çağırmak Ama eğer, bu seferde tüm verileri asmak ve göndereceğiz.

Herhangi bir fikir?

Bu benim ajax içeriği almak için kullanabileceğiniz fonksiyonudur ('id' hedef, 'url' kayıtları listelemek için veritabanı sorgusu çalıştırır ajax sayfa anlamına gelir):

function ajax(id,url) {
 xmlhttp=new XMLHttpRequest();
 xmlhttp.open("GET",url,false);
 xmlhttp.send(null);
 document.getElementById(id).innerHTML = parseScript(xmlhttp.responseText);
}

1 Cevap

Esasen Eğer sonuç güncellemek için bir JavaScript işlevi çağrısını çıkışları sunucu tarafı kodu ile bir döngü oluşturmak gerekir. Bu talepler paralel bir HTTP bağlantısı yapılmalıdır.

Daha detay burada mevcuttur: http://ajaxpatterns.org/HTTP_Streaming