2012-06-01 37 views
1

有互動網站(例如這:)),它可以注意到事件而不刷新任何東西。例如,當我得到答案時,會出現一個紅圈。我知道這可以通過發送ajax請求來完成,比如每5秒發一個請求 - 但它會殺死服務器。那麼服務器應該如何向客戶端發送一些更改?(php,ajax)服務器應該如何通知客戶端?

+1

可能重複[AJAX輪詢頻率 - 長投票或不長輪詢?](HTTP ://stackoverflow.com/questions/3842063/ajax-polling-frequency-to-long-poll-or-not-to-long-poll) – JJJ

回答

1

您可以打開保持活動狀態的XHR,直到服務器發送狀態更改以發送響應。

這就是所謂的長輪詢

+0

但這仍然是很多要求不是嗎? –

+0

我的意思是,這仍然是一個連續的發送/接收,重載服務器 –

2

解決方案,如socket.io實施不同的方式來保持連接的客戶端,包括:

  • HTML5 WebSockets的(新的,還不錯,但不是由舊的瀏覽器支持)
  • Flash插件(需要安裝Flash插件,無手機支持)
  • 長輪詢(殺手傳統web服務)的
相關問題