2012-10-27 41 views
7

BenGerçek zamanlı ajax

Gönderme yorumlar (youtube bunu görebilirsiniz) yorum yayınlandı ve sayfayı yenilemeden güncellenebilir bu yorum sistemi yapmayı planlıyorsanız yorumlar javascript ve çalıştır (php sayfasına yazılan anlaşılabilir Sunucu tarafı SQL sorgusu, içe aktarma, yorumu döndürme ve html'ye getirme)

Güncelleme, anlamadığım bölümdür. Sayfayı belirli aralıklarla otomatik olarak nasıl yenileyebilirim ve yorum ekleyebilirsiniz? Birden fazla kullanıcı aynı anda yorum yapmaya çalıştığında bu karışıklık olmaz mı?

Herkes iyi bir yol tavsiye edebilir eğer (sadece tavsiye kelime gibi) Bunu başarmak ve bana

cevap

2

en yaygın yolu, her 5- yoklamaya javascript setTimeout veya setInterval çağırmaktır zamandan tasarruf etmek için merak 25 saniye. Temel olarak, javascript tarafında aldığınız son yorumun fikrini saklarsınız, daha sonra bu kimliği uzak bir sunucuya gönderen bir işlevi çağırırsınız. Bu kimlikten daha yeni mesajlar varsa, hepsini XML veya JSON yoluyla geri gönderirsiniz (özellikle jQuery gibi bir çerçeve kullanıyorsanız, javascript tarafında daha kolay json kullanmak daha kolaydır).

+0

Teşekkürler, bu – Alexim

+2

'u deneyebilirim JSON, JSON.parse özelliğini kullanarak jQuery olmadan kolayca işlenebilir. –

+0

@FelixKling Aksine bir şey demedim :). – ajacian81

1

"Uzun Yoklama" özelliğini kullanabilirsiniz. Temel olarak, bir Ajax bağlantısını açtığınız ve sunucunun gönderilecek yanıtı alana kadar kapanmadığı bir tekniktir. Bu yanıtı alan müşteri yeni bir bağlantı ister ve bir cevap için tekrar bekler.

Bir eğiticiye göz atabilirsiniz: Simple Long Polling Example with JavaScript and jQuery.

1

Başka bir gerçekten iyi bir yol, bir abonelik/yayınlama servisi kullanıyor olabilir. Ben Bildirimler için şu anda PubNub kullanıyorum

,

0

keresinde sadece Yeni yorumları gösteriyor ki bir kusur ile basit bir teknik (kullanılan hiçbir zamanlayıcı, hiçbir toplam yenileme) kullanılan .. vb Yorumlar, ancak Var olan görüntülenen yorumlara yapılan diğer kişiler tarafından düzenlenir ve silinir. "Yorumlar/genişlet/daha fazlasını görüntüle" yorumlarına izin verirseniz tüm yorum panelini yenilemenin olanaksız olabileceğini unutmayın. Benim basit tekniğim, (i) görüntülenen son yorumun indeksini/birincil anahtarını saklamak için bir gizli giriş elemanına sahip olmaktır (ii) mevcut görüntülenen yorumları ve ajax yenileme veya html dom manipülasyonunu yalnızca eylemler gerçekleştirildiğinde yalnızca bu div manipülasyonunu tutmak için birçok benzersiz tanımlı div bunun üzerine (iii) bir görüş daha fazla yorum tutacak bir div düğmesidir, bu sayede düğme sadece görüntülenecek daha fazla yorum varsa görüntülenir.

Bu nedenle, yeni bir yorum gönderildiğinde, "bir düğmeyle daha fazla yorum panelini görüntüle" görünümü [X + (başkalarının yeni gelen # yeni yorumları] + (# yeni yorumunuz)] yorumlarıyla yenilenir. Bu düğmeyi tıkladıktan sonra, "Y daha fazla yorum görüntüle" düğmesiyle birlikte 3 yeni yorum daha gösterecektir.

İlgili konular