Bitmesi için beklemeden aşamalı bir ajax (jquery) isteği tepki yüklemek nasıl?

4 Cevap php

Ben bir php dosyasına anahtar kelime listesini göndermek için jquery kullanmak bir form yapmak istiyorum, bu dosya anahtar kelimeler listesinin boyutuna bağlı olarak yüklemek için çok fazla zaman alabilir.

Ne yapmak istiyorum iframe kullanmadan gerçek zamanlı bir div veya kap içine php yanıtı yüklemektir.

Bütün bildiğim ajax isteği istek bitinceye kadar beklemek zorunda yanıt erişimi olan önce, Ben bu yüzden gerçek zamanlı ilerleme güncelleyebilirsiniz bitmiş değil bile tepki erişmek gerekir.

4 Cevap

Gerçekten de bir yolu yoktur. Düz eski xmlhttpobjects ile ben readyState izlenir. Hazır devlet 4 isteği sona erdi demektir. Hazır devlet 3. Ben bazı çıktı almak ve daha fazla beklemek anlamına gelir:

request.onreadystatechange=function()
{
    switch(request.readyState)
    {
        case 4:
            console.log("all good things come to an end");
        break;
        case 3:
            console.log("o, hai!" + request.responseText);
        break;
    }
}

Ben aynı jQuery elde edebilirsiniz inanıyorum: http://stackoverflow.com/questions/287286/jquery-is-req-readystate-3-possible

Son zamanlarda Josh sizin için doğru gibi görünüyor COMET teknolojisi, yaklaşık gönderdi. Php örneklerle ilginç bağlantılar çift vardır.

http://stackoverflow.com/questions/2751853/how-do-i-show-the-print-with-ajax-jquery/2751934#2751934

Güncelleme: Ajax kullanmak için en güvenilir yolu, atomik olarak her Ajax isteği dikkate: çalışır ya da değil.

Talebiniz yürütme olarak ve (JS sayfada çalışan) gerçekten herhangi bir geri bildirim alamadım. Böylece birden aramaları gerekir. Ama dikkatli olun! Çağrı başına yükü çok ve çoğu tarayıcılar sadece bir seferde bir veya belki iki yürütecek.

Ben insana yoğun bir göstergesi kullanmanızı öneririz. Ayrıca bir şey oluyor gibi görünüyor yapmak için saniyede en az iki kez güncellemeleri aşağı saymak saat gösterebilirim.

Eklendi:

Ayrıca yeniden mimar çözüm isteyebilirsiniz. Örneğin Ajax isteği göndererek başladı Toplu iş olarak güncelleme işlemini görüntülemek. Daha sonra Ajax öğrenmeye çağıran (ve daha sonra) insan toplu işin ilerlemesini görüntülemek yapmak.

Comet ve diğer "açık borusunu tutmak stratejileri" ama zor olan güvenilir bir çalışma almak ve kaynakların çok kullanma eğiliminde olabilir. Daha yaya yoklama tekniği olacak almak için çok daha kolay olabilir. Daha sonra gerekirse optimize eder.

Birden, küçük istekleri yerine büyük bir birini kullanmanız gerekir gibi geliyor.