Ben AJAX ile iki ayrı denetimleri gerçekleştirmek için olan bir JavaScript uygulaması üzerinde çalışıyorum. Her onay sonucuna bağlı olarak, davranış farklıdır. Her iki kontrol de başarılı olduğunda burada ilgileniyorum durumdur. Bunu yapmak için birkaç yol tespit ettik, ve ben onlar iyi yaklaşım olduğunu düşünüyorum ne SO bazı geribildirim almak istiyorum.
- Bu benim miras budur, ve o gitti: Senkron AJAX çağırır. Eğer yürütme tek bir iplik yanıtların işlenmesini tutmak için izin vermez gerçi, tarayıcı ve sistem kilitlenmelerine neden olur.
- Papatya zincirleme: ilk kontrolü gerçekleştirmek için bir AJAX arama yapmak, ve o geçerse, ilk kontrol geri arama ikinci denetimi yapmak. Ikinci kontrol işlemek ve geçerse, biz başarılı. Bu en basit bir çözümdür, ama benim iki çek için gereksiz yere çift görür. Ben de çek serializing gibi hissediyorum gereksiz ve performansı düşürür.
- Özel Etkinlikler: Yui adlı Event modülü ve Özel Etkinlik programını kullanarak, hem AJAX aynı anda çağırır kapalı yangın. Her başarı durum için özel bir olay oluşturma, ve AJAX yanıtlarını işleyecek callbacks başarı her kontrol için uygun bir olay atmak var. Her olay için işleyici sonra diğer olaya abone olabilir ve bu durum o zaman biz başarıyla tamamladık.
Benim soru lehine biridir üçüncü yaklaşımı ile ilgilidir. Benim işlemcileri sadece olayları atılan üzerinden bağlanabilir ve AJAX çağrıları aynı anda olabilir ki gerçeğini seviyorum. Ne bilmek istiyorum, herkesten bu şekilde bu modül kullanılır vardır? Tuzaklar ne tür bekleyebilirim? Ben bir yarış durumu için kendimi kurdunuz olabilir endişelenmeyin - nasıl bu hafifletmek? Ve nihayet, bu kadar okumuş herkes için daha iyi bir yolu var mı? Listemi ayrıntılı olmayan, ya da tasarım temelde kusurlu? Yapıcı eleştiri ve yorumlar bekliyoruz daha vardır.
Düzenleme: sunucu istekleri oturumlarını kullanmak yaparken, onlar PHP oturumları bazı sınırlama yoksa ben bilmiyorum (birbirine ilgisiz ve oturum verilerini yazmayın, bu yüzden onları sunucuda paralel gerçekleşmesi için hiçbir neden yok kadar). Biz de sunucu tarafı denetimlerini yapmak, ama biz bazı önemli olaylardan önce biz bir şey değiştirir nadir durumunda kullanıcıyı bilgilendirmek, böylece hemen önce sunucu ile kontrol etmek gerektiğini bulabilirsiniz.