基于jquery,php實現(xiàn)ajax長輪詢(longpoll)

基于jquery,php實現(xiàn)ajax長輪詢(longpoll)

ID:13149092

大?。?08.00 KB

頁數:5頁

時間:2018-07-20

基于jquery,php實現(xiàn)ajax長輪詢(longpoll)_第1頁
基于jquery,php實現(xiàn)ajax長輪詢(longpoll)_第2頁
基于jquery,php實現(xiàn)ajax長輪詢(longpoll)_第3頁
基于jquery,php實現(xiàn)ajax長輪詢(longpoll)_第4頁
基于jquery,php實現(xiàn)ajax長輪詢(longpoll)_第5頁
資源描述:

《基于jquery,php實現(xiàn)ajax長輪詢(longpoll)》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

1、HTTP是無狀態(tài)、單向的協(xié)議,用戶只能夠通過客服端向服務器發(fā)送請求并由服務器處理發(fā)回一個響應。若要實現(xiàn)聊天室、WEBQQ、在線客服、郵箱等這些即時通訊的應用,就要用到“服務器推送技術(Comet)”。傳統(tǒng)的AJAX輪詢方式,客服端以用戶定義的時間間隔去服務器上查詢最新的數據。種這種拉取數據的方式需要很短的時間間隔才能保證數據的精確度,但太短的時間間隔客服端會對服務器在短時間內發(fā)送出多個請求。反轉AJAX,就是所謂的長輪詢或者COMET。服務器與客服端需要保持一條長時間的請求,它使得服務器在有數據時可以返回消息給客戶端。html:v

2、iewplaincopytoclipboardprint?1.

??2.??javascript:這里使用AJAX請求data.php頁面獲得‘success’的值,請求的時間達到80秒。在這80秒中若沒有從服務端返回‘success’則一直保持連接狀態(tài),直到有數據返回或‘success’的值為0才關閉連接。在關閉連接后在繼續(xù)下一次的請求。viewplaincopytoclipboardprint?1.$(f

3、unction(){??2.??3.??4.????$("#btn").bind("click",{btn:$("#btn")},function(evdata){??5.?????????$.ajax({??6.????????????????type:"POST",??7.????????????????dataType:"json",??8.????????????????url:"data.php",??9.????????????????timeout:80000,?????//ajax請求超時時間80秒??10.???

4、?????????????data:{time:"80"},?//40秒后無論結果服務器都返回數據??11.????????????????success:function(data,textStatus){??12.????????????????????//從服務器得到數據,顯示數據并繼續(xù)查詢??13.????????????????????if(data.success=="1"){??14.?????????????????????$("#msg").append("
[有數據]"+data.text);??15.?

5、????????????????????evdata.data.btn.click();??1.????????????????????}??2.?????????????????//未從服務器得到數據,繼續(xù)查詢??3.????????????????????if(data.success=="0"){??4.????????????????????$("#msg").append("
[無數據]");??5.????????????????????evdata.data.btn.click();??6.??????????

6、??????????}??7.????????????????},??8.?????????????//Ajax請求超時,繼續(xù)查詢??9.?????????????error:function(XMLHttpRequest,textStatus,errorThrown){??10.?????????????????????if(textStatus=="timeout"){??11.?????????????????????????$("#msg").append("
[超時]");??12.????????????????

7、?????????evdata.data.btn.click();??13.?????????????????????}??14.?????????????}??15.??????????????????16.????????????});??17.????});??18.??????19.});??PHP:在這里是無限的循環(huán),循環(huán)的結束條件就是獲取到了返回結果返回Json數據。并且接受$_POST['time']參數來限制循環(huán)的超時時間,避免資源的過度浪費。(瀏覽器關閉不會發(fā)消息給服務器,使用可能一直循環(huán)下去)viewplain

8、copytoclipboardprint?1.if(empty($_POST['time']))exit();??2.set_time_limit(0);//無限請求超時時間??3.$i=0;??4.while?(true){??5.????//s

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。
相關標簽