2011-05-17 12 views
5

Web sitemde sohbet yapıyorum ve yeni mesajların olup olmadığını kontrol etmek için sunucuma birçok AJAX isteği göndermesi gerekiyor (saniyede en az 2 kez).
İsteklerin sayısını azaltmak ve mesajları yalnızca gönderildikten sonra yeniden yüklemek için bir yol var mı?
Soketleri kullanma olasılığının olmadığını biliyorum (çünkü flash, java veya HTML5'in özelliklerini kullanamıyorum), fakat belki de ile ilgili bazı hileler, HTTP 1.1'in seçeneğini canlı tutuyor mu?Sohbet için bir takım AJAX istekleri nasıl azaltılır?

+1

socket.io'yu kullanın;) Websockets kullanılamıyorsa websitelerini kullanır ve Ajax'a indirir. – Raynos

cevap

6

Evet, bunu yapmanın kolay bir yolu var. Etkili bir şekilde, yaptığınız şey, ajax çağrınızın zaman aşımını uzun bir zaman aşımına (örneğin 5 dakika) arttırır. Sunucunuz isteği alır ve sonra tutar ve yeni yanıtları kontrol eder. Ardından, yeni bir yanıt gerekli olduğunda, istekte bulunur ve istemciniz güncellemeyi alır.

5 dakika içinde hiçbir yanıt alınamadıysa, istemciniz zaman aşımına uğrar ve yeni bir ajax isteği başlatır. Sunucunuz, 5 dakika içinde yanıt vermediyse, genellikle sıradaki istekleri kapatmak için bekletilen isteği sonlandırır.

Etkili 'sunucu tarafı' itme.

+0

Vay, bu gerçekten iyi bir teknik! – tsds

+1

Örnekler Tejs? – JClaspill

+1

Bağlantı yok, ancak tercih ettiğiniz web sunucusunda bunu yapmak oldukça kolay olmalı. jQuery'nin ajax yardımcıları uzun bir zaman aşımı ayarlamayı kolaylaştırır. – Tejs

İlgili konular