2011-05-17 36 views
5

我在我的網站上有一個聊天,它需要發送很多AJAX請求到我的服務器(至少每秒2次)以檢查是否有新消息。
有沒有辦法減少請求的數量並重新加載消息後才發佈?
我知道有沒有可能使用套接字(因爲我不能使用Flash,Java或HTML5的功能),但也許有一些技巧處理保持活動選項的HTTP 1.1?如何減少一些聊天的AJAX請求?

+1

使用socket.io;)如果websocket不可用,它使用websockets並降級到Ajax。 – Raynos 2011-05-17 19:55:58

回答

6

是的,有一個簡單的方法來做到這一點。實際上,你所做的是將你的ajax調用的超時時間增加到超時(例如5分鐘)。您的服務器收到請求並保存它,偶爾會檢查新的響應。然後,當有新的回覆需要時,它只是響應請求,並且客戶端收到更新。

如果在5分鐘內沒有響應,您的客戶端只需暫停並啓動一個新的ajax請求。如果您的服務器在5分鐘內沒有響應,通常會終止持有的請求以將其退出隊列。

有效'服務器端'推送。

+0

哇,這是一個非常好的技巧! – tsds 2011-05-17 19:46:19

+1

您可以提供的任何鏈接例如Tejs? – JClaspill 2011-05-17 19:48:39

+1

沒有鏈接,但它應該是相當容易做你選擇的網絡服務器。 jQuery的ajax幫助器可以很容易地設置一個很長的超時時間。 – Tejs 2011-05-17 19:51:41