云南省建設(shè)工程招標(biāo)投標(biāo)行業(yè)協(xié)會網(wǎng)站百度seo排名優(yōu)化教程
我們聊聊輪詢技術(shù),什么是輪詢?輪詢就是在特定的時間間隔,由瀏覽器對服務(wù)器發(fā)出HTTP請求,然后由服務(wù)器返回最新的數(shù)據(jù)給客戶端的瀏覽器。
輪詢分為兩種:
短輪詢:通過不斷的向服務(wù)端發(fā)送數(shù)據(jù),客戶端發(fā)送Request,服務(wù)端直接返回Response(不管服務(wù)端數(shù)據(jù)有沒有改變)。
長輪詢:通過不斷的向服務(wù)端發(fā)送數(shù)據(jù),客戶端發(fā)送Request,服務(wù)端發(fā)現(xiàn)數(shù)據(jù)沒有改變,就將這個Request掛起,直到有最新數(shù)據(jù)再發(fā)送Response給客戶端。
通過上面短輪詢的介紹,不難發(fā)現(xiàn)它的缺點,如果在某段時間內(nèi),服務(wù)端數(shù)據(jù)沒有任何變化,但客戶端還是不停的發(fā)送請求給服務(wù)端,服務(wù)端也不管數(shù)據(jù)是否變化,直接返回結(jié)果給客戶端,那么在這段時間內(nèi)的所有請求其實是無效的。
這個時候長輪詢就彌補了短輪詢的缺點,客戶端發(fā)送請求,服務(wù)器會查詢數(shù)據(jù)是否更新,沒有更新就會掛起這個請求,直到有新數(shù)據(jù),服務(wù)端才會把Response返回給客戶端,這樣是不是就完美了?其實不是,服務(wù)端將客戶端的請求掛起會導(dǎo)致資源的浪費,比如有1W人請求服務(wù)端,那這個時候服務(wù)端這邊就要開啟1W個線程,導(dǎo)致資