2011-06-03 32 views
13

EXT JS'de eşzamanlı ajax isteklerini nasıl yapabilirim?EXT Js Senkronize ajax isteği

Örneğin, bu kod verilir:

test1(); 
ajaxRequest(); //Ajax Request 
test2(); 

dnm2 fonksiyonu, hatta bir Ext.Ajax.request çağrıyı alır ajaxRequest() yürütülmesini bitirmeden yürütülür.

text2() işlevini yalnızca ajaxRequest() işlevi yürütüldükten sonra nasıl yapabilirim?

Bunu yapmanın bir yolunun bir geri aramada test2 işlevini çağırmak olduğunu anlıyorum, ancak bazı bağımlılıklar ve ajax isteğinden sonra eşzamanlı olarak yürütülmesi gereken çok fazla kod var. En iyi çözüm için bana yardımcı olabilir misiniz?

cevap

24

ExtJS ile ve Ext.Ajax.request() ve Ext.data.Connection kaynak kodunu geçirdikten sonra çalışmıyor request() yöntem, bu nedenle, bu gibi bir senkron istek yapmak aslında mümkün:

var response = Ext.Ajax.request({ 
    async: false, 
    url: 'service/url' 
}); 
var items = Ext.decode(response.responseText); 

async nitelik belgelenmiş değildir görünüyor, o yüzden ... tabii ... unutmayın Gelecekteki sürümlerde değişebilir.

+2

Async özniteliği, 5.0 sürümünde Ext.Ajax.request için belgelenmiştir. 3.4 için docs.sencha.com/extjs/5.0/apidocs/#!/api/Ext.Ajax – dansalmo

+0

adresine bakın. –

5

ExtJS, kutudan senkronize istek özellikleri sağlamaz. Aslında, bunları kullanmayı şiddetle tavsiye ediyorlar.

following Tartışma yararlı olabilir. Extjs.Ajax yılında

+1

Bu bir 2007 tartışmasıdır. – Meredith

+1

Async özniteliği, 5.0 sürümde Ext.Ajax.request için belgelenmiştir. Bkz. Http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Ext.Ajax – dansalmo

11

geri arama fonksiyonlarının üç türünden birinde her bir AJAX çağrı sonuçları: AJAX çağrısı başarısız olursa çalışan bir yanıtı

  • failure AJAX çağrısı başarıyla oluşturulursa çalışır ve alır

    • success AJAX çağrısı bir yanıt alır SONRA çalışan bir yanıt
    • callback almak için

    Ajax isteğiniz bittikten sonra test2();'u çalıştırmak isterseniz,
    sonra success, failure veya callback işlevinin içine yerleştirin; hangisini seçerseniz seçin ...

    success veya failure işlev hakkında daha fazla bilgi here bulunabilir.

    test1(); 
    Ext.Ajax.request({ 
        url: 'page.php', 
        params: { 
         id: 1 
        }, 
        // scope: this, // you can set the scope too 
        callback: function(opt,success,respon){ 
         test2(); 
        } 
    }); 
    

    Not: Bu yöntem onlar üzerinde bir async öznitelik için kontrol bulundu, ben benzer bir şey gerekiyordu 3.

  • İlgili konular