最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ajax與websocket的區(qū)別以及websocket常用使用方式 介紹

 更新時(shí)間:2018年06月24日 09:14:53   作者:guoke360  
這篇文章主要介紹了ajax與websocket的區(qū)別以及websocket常用使用方式 介紹,需要的朋友可以參考下

筆者近期在公司的項(xiàng)目中漸漸的接觸了一些比較高級(jí)的業(yè)務(wù)邏輯處理,其中比較有意思的地方就是前端接受后臺(tái)給與的推送問(wèn)題。

一般前端與后端的交互主要是使用ajax進(jìn)行異步操作調(diào)用交互,比較有趣的是這種交互方式一般都是單項(xiàng)交互的--

-及前端給后端發(fā)出請(qǐng)求后端接受請(qǐng)求后執(zhí)行操作,即便前端可以接受后端給予的返回值,但是與后端交互的主動(dòng)權(quán)始終是放在前端手里面。

而這樣就會(huì)遇到兩個(gè)有意思的問(wèn)題--

1.前端如果調(diào)用的接口后端操作事件過(guò)長(zhǎng)可能會(huì)導(dǎo)致返回操作響應(yīng)時(shí)間過(guò)長(zhǎng),如果此時(shí)用戶單擊其他頁(yè)面的時(shí)候就會(huì)導(dǎo)致返回操作無(wú)法正常解決。

2.如果后端有什么比較重要的問(wèn)題需要推送給前端消息,這個(gè)時(shí)候前端是無(wú)法接收到的。

面對(duì)這兩個(gè)問(wèn)題的主流解決辦法分別為針對(duì)第一條我們會(huì)給整個(gè)頁(yè)面做一個(gè)加載中的動(dòng)畫(huà)并且鎖定住整個(gè)頁(yè)面從而強(qiáng)迫用戶等待到整個(gè)后端返回值結(jié)束后再將頁(yè)面解鎖。

而對(duì)于第二點(diǎn)我們就要引入我們今天所講的websocket這個(gè)概念。

一.什么是websocket

websocket協(xié)議在2008年誕生,2011年成為國(guó)際標(biāo)準(zhǔn)。所有瀏覽器都已經(jīng)支持了。

它的最大特點(diǎn)就是,服務(wù)器可以主動(dòng)向客戶端推送信息,客戶端也可以主動(dòng)向服務(wù)器發(fā)送信息,是真正的雙向平等對(duì)話,屬于服務(wù)器推送技術(shù)的一種。

而他與常規(guī)的ajax最大的不同在于他可以雙向接受和發(fā)送

一.websocket的簡(jiǎn)單使用

對(duì)于我們前端來(lái)說(shuō)websocket的使用方式非常簡(jiǎn)單,協(xié)議標(biāo)識(shí)符是ws(如果加密,則為wss),服務(wù)器網(wǎng)址就是 URL。我們只需要自己定義一個(gè)ws服務(wù)就可以了

代碼如下

var ws = new WebSocket("URL路徑");
ws.onopen = function(evt) { 
 console.log("打開(kāi)成功"); 
 ws.send("Hello WORD!");
};
ws.onmessage = function(evt) {
 console.log( "Received Message: " + evt.data);
 ws.close();
};
ws.onclose = function(evt) {
 console.log("服務(wù)關(guān)閉");
};  

如以上代碼所示我們成功的創(chuàng)建了一個(gè)簡(jiǎn)單的名字為WS的websocket服務(wù)并且想后臺(tái)定義的路徑中發(fā)送了一條hello word的簡(jiǎn)訊并且會(huì)在接收到推送的時(shí)候打印Received Message

在你的ws服務(wù)打開(kāi)以后會(huì)在前端的內(nèi)一直處于掛起狀態(tài),由于現(xiàn)在框架橫行,當(dāng)你的框架或者說(shuō)前端項(xiàng)目經(jīng)過(guò)node編譯或者運(yùn)行時(shí)候你可以把ws服務(wù)寫(xiě)在所有頁(yè)面的模板中就可以讓項(xiàng)目只要處于被打開(kāi)狀態(tài)就能一直運(yùn)行

這個(gè)時(shí)候你需要寫(xiě)接受推送消息即可,判斷后端給你推送消息的類型并且做出相應(yīng)的操作,完全不需要有ajax異步操作等待返回值或者返回值后自己操作時(shí)間太長(zhǎng)而讓用戶等待太久的煩惱。而這一技術(shù)現(xiàn)在也普遍的用在了

在線聊天室和一些需要接受推送提示的地方。

不過(guò)值得注意的是一般情況下如果推送量較為大的話公司會(huì)選擇一些比較大的云服務(wù)來(lái)做,比如筆者的公司就是使用的融云服務(wù)來(lái)做的,等筆者有空的話會(huì)專門開(kāi)一次坑講一講融云服務(wù)的教程

總結(jié)

以上所述是小編給大家介紹的ajax與websocket的區(qū)別以及websocket常用使用方式 介紹,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

相關(guān)文章

最新評(píng)論

定安县| 瑞丽市| 望城县| 呈贡县| 工布江达县| 土默特左旗| 合川市| 宜昌市| 汤阴县| 江山市| 合阳县| 永嘉县| 定州市| 凭祥市| 五台县| 海口市| 南宁市| 林西县| 阳朔县| 从化市| 出国| 金阳县| 汾阳市| 安化县| 石林| 涡阳县| 玉林市| 宝清县| 舟山市| 贡觉县| 乐至县| 瑞丽市| 龙海市| 忻州市| 湟中县| 广南县| 大冶市| 建阳市| 色达县| 大同县| 瓮安县|