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