2009-07-28 13 views
5

AJAX/COMET tabanlı bir on line sohbet odası yazıyorum. Benim tasarımı:Farklı tarayıcıların zaman aşımı davranışı?

----------------- beklemek

Talebi ------------------- ------> gönderme dökümü veri

----------------- beklemek ------------------ -------> gönderme dökümü veri

----------------- beklemek ----------------- --------> gönderme dökümü veri

----------------- beklemek ---------------- ---------> döküm verilerini gönder

----------------- wait -------------------------> döküm verilerini gönder

------ bir şey oldu, yanıt alın.

Başka istek ..... ....

Gördüğünüz gibi, sunucunun isteği tutun ve bir şeyler beklemek oldu, bazı olay, sadece veri ve bitiş isteği itin yaşansın varsa. Sonra müşteri başka bir istekte bulunacak. İstekte onay var, bu nedenle iki istek arasında boşluk olduğu takdirde, sunucu istemci için bekleyen bir olay olduğunu bilir.

Tarayıcı zaman aşımından önce, sunucu zaman aşımını önlemek için sunucudan bazı boş veriler de gönderir.

Şimdi, sorun geliyor: farklı tarayıcıların zaman aşımı davranışı nedir? Tarayıcının talebi göndereceğini ve veriyi beklediğini biliyorum, beklemek çok uzun zaman alıyorsa, zaman aşımı olacaktır. Ancak farklı tarayıcıların zaman aşımı davranışı nedir? Ve tarayıcının zaman aşımı davranışını kontrol edebilecek herhangi bir başlık var mı? Tarayıcıların zaman aşımı davranışını bilerek, onlarla nasıl başa çıkılacağına karar verebilirim. Bu verileri nerede bulabilirim? istemci proxy üzerinden gidiyor olabilir çünkü

+0

Bu cevaba bakın http://stackoverflow.com/a/1343963/779408 – breceivemail

cevap

9

Aslında, farklı tarayıcılar için zaman aşımı açık değerler -Sandığın kadar anlamına gelmez. Eğer zaman aşımı ile uğraşmak zorunda gidiyoruz, ve tarayıcıya akış miktarı ne olursa bunu her zaman engellemek için gidiyor -

Aksine, sana neden istendiği sorardı. Bu yüzden, sunucunun bağlantıyı bıraktığı zaman istemciden istemesi en iyisi olur - bu yüzden bir çok insan uzun bir oylama yapmanın nedenini, yani yapmaya çalıştığınız şeydir. Bir akış çözümü veya uzun bir anket seçip seçmediğinizden bağımsız olarak, bağlantı sıfırlamalarına izin vermeniz gerekir.

Basit bir gizli iframe istemci kurulumu için, it's not too hard to do - ve hangi istemci tarafı çerçevesine bağlı olarak XHR istekleri için eşit derecede kolaydır.

Çoğu modern tarayıcı için zaman aşımı IE'de (60 dakika? Wow) rather large ve FF'de daha kısa görünüyor (yaklaşık: config 300 saniye diyor) - ama dediğim gibi, vekil yönetici tarafından nasıl yapılandırıldığına bağlı olarak zaman aşımının 2 dakika veya daha kısa olabileceği bir proxy.

Özetle, zaman aşımları gerçekleşir. Onları durduramazsın. İstemcinizi gerçekleştiğinde yeniden bağlanmaya zorlayın (sunucuda bir dönüşü önlemek için bir sınırla) ve daha fazla endişelenmeyin. Daha sağlam olmanın yanı sıra, kodunuzu daha da performanslı hale getirecektir, çünkü düzenli olmayan verileri her müşteriye pompalamayacaksınız.