摘要:在看這篇長輪詢之前可以先看看輪詢技術沒有長,有助于理解長輪詢屬于輪詢的升級版,在客戶端和服務端都進行了一些改造,使得消耗更低,速度更快。不間斷的通過查詢服務端。然后客戶端不間斷繼續(xù)發(fā)起請求數(shù)據(jù)不存在,繼續(xù)循環(huán)。
在看這篇Ajax長輪詢之前可以先看看Ajax輪詢技術(沒有長),有助于理解:
Ajax長輪詢屬于Ajax輪詢的升級版,在客戶端和服務端都進行了一些改造,使得消耗更低,速度更快。
"不間斷的通過Ajax查詢服務端"。
來,小二,先上代碼~:
Reception.html //客戶端
server.php: //服務端
query("select * from t1"); $result = $resource->fetchall(); while (true) { if ($result) { //exits data print_r(json_encode(array("success"=>"存在數(shù)據(jù),返回"))); exit(); //輸出數(shù)據(jù),退出。然后客戶端不間斷繼續(xù)發(fā)起請求 } //數(shù)據(jù)不存在,繼續(xù)循環(huán)。 } ?>
看出了玄機了嘛?長輪詢的精髓就在于Ajax的回調(diào)函數(shù),繼續(xù)再次調(diào)用Ajax請求(不間斷的原理就在這里,成功返回后立即再次調(diào)用):
$.ajax(getting);
下面是是Ajax 長輪詢的圖解:
首先請忽略綠色字體的使用限制,然后哪位朋友有可以推薦的畫圖工具可以推薦給我,我現(xiàn)在用的是憶圖圖示。
圖中有兩次請求(本文中的請求默認均為Ajax),第一次很快返回了結果,然后不間斷的立即發(fā)送第二次請求,但是第二次請求沒有獲得數(shù)據(jù),所以請求遲遲沒有返回(被掛在服務器了,但只要有數(shù)據(jù)就會再次返回),如果第二次的請求返回數(shù)據(jù)后,第三次請求旋即會立刻發(fā)出,這種技術就稱為Ajax 長輪詢。
用偽代碼來表示就是這樣:
最關鍵的地方在于前一次請求結束后,第二次請求立即不間斷的發(fā)起,這個就叫做Ajax長輪詢
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/21535.html
摘要:概念輪詢客戶端按規(guī)定時間定時像服務端發(fā)送請求,服務器接到請求后馬上返回響應信息并關閉連接。判斷表是否有數(shù)據(jù),并執(zhí)行對應輸出。實際項目中的話查詢語句就根據(jù)實際需求來定就可以了。 Ajax輪詢——定時的通過Ajax查詢服務端。 概念: 輪詢(polling):客戶端按規(guī)定時間定時像服務端發(fā)送ajax請求,服務器接到請求后馬上返回響應信息并關閉連接。 百聞不如一見,來段代碼相信你一看就明白 ...
摘要:不得不說確實是一個好東西,由它的出現(xiàn)使得端新技術不斷產(chǎn)生,就屬于這么一個技術,這個技術有時叫做反向,有時叫做服務器推技術,嗯,不要被牛逼閃閃的名詞嚇倒,其實沒那么難。 不得不說Ajax確實是一個好東西,由它的出現(xiàn)使得WEB端新技術不斷產(chǎn)生,Comet就屬于這么一個技術,這個技術有時叫做反向AJAX,有時叫做服務器推技術,嗯,不要被牛逼閃閃的名詞嚇倒,其實沒那么難。 先看一下維基的解釋:...
摘要:國際慣例,先上維基百科的解釋。維基百科上面是維基百科對的解釋,別問我如何解釋上面這段話,因為我也沒看懂,那么下面我用人話解釋一下吧僅僅是我的理解是一個協(xié)議,可以簡單看成是協(xié)議的一個補充協(xié)議,借助協(xié)議的基礎完成服務器主動與客戶端實時傳輸數(shù)據(jù)。 現(xiàn)在,很多網(wǎng)站為了實現(xiàn)推送技術,所用的技術都是輪詢。輪詢是在特定的的時間間隔(如每1秒),由瀏覽器對服務器發(fā)出HTTP request,然后由服務...
摘要:用偽代碼來模擬下長輪詢的過程前端利用下面函數(shù)進行請求后端代碼做如下更改利用隨機數(shù)的大小來模擬是否有新數(shù)據(jù)有新數(shù)據(jù)來了長輪詢的確減少了請求的次數(shù),但是它也有著很大的問題,那就是耗費服務器的資源。 寫在前面 最近由于利用node重構某個項目,項目中有一個實時聊天的功能,于是就研究了一下聊天室,在線demo|源碼,歡迎大家反饋。這個聊天室的主要利用到了socket.io和express。這個...
摘要:服務端確認協(xié)議版本,升級為協(xié)議。自己寫了一個例子,服務端在開始連接后,利用定時器主動向客戶端發(fā)送隨機數(shù),客戶端也可以發(fā)給服務器消息,然后服務器返回這條消息給客戶端。做的事情就是給頁面的元素綁定事件。 寫在前面webSocket是一項可以讓服務器將數(shù)據(jù)主動推送給客戶端的技術。前幾天寫了一個日志功能,日志數(shù)據(jù)需要實時更新。正好項目中有封裝好的WebSocket組件,且接口支持webSock...
閱讀 3705·2021-11-22 13:52
閱讀 3602·2019-12-27 12:20
閱讀 2385·2019-08-30 15:55
閱讀 2144·2019-08-30 15:44
閱讀 2262·2019-08-30 13:16
閱讀 574·2019-08-28 18:19
閱讀 1881·2019-08-26 11:58
閱讀 3436·2019-08-26 11:47