㈠ 如何避免前端輪詢太頻繁對伺服器造成壓力
既然是微信,最佳的是做socket連接,不過需要你們服務端改造下,這樣前端比較省心,服務端推送就好了
其次的方案是參考comet模式,發一個ajax請求出去後,伺服器如果沒有新消息,不要反回,hold住這個連接,直到有數據;
前端要做三個事情:
第一個事情是由於http是短連接,一般瀏覽器都會設置一個超時時間,所以前端這個連接如果超過一定時間沒有返回,需要abort掉,重新發起,推薦30秒;
第二個事情是每次伺服器有數據返回後,這個請求就結束了,你需要發起一個新的請求做監聽;
第三個事情是多頁面請求沖突問題,比較麻煩,不過如果你們是小游戲,應該是單頁面應用就不用處理了,一般多頁面應用或者WEB網站這類的,是通過localstorage來共享信息避免重發請求,也可以關掉前一個請求,在當前頁面重新發起一個請求
不管哪種方案都要伺服器端做改造,這不僅僅是前端自己的事,因為如果每一個連接都開一個線程,很快就會內存不夠掛掉的。