有時候我們要做一種實時展示數據的大屏展示頁面,類似與京東雙十一那種,
這時候數據交互該怎么寫呢,使用ajax請求接口 開定時器,不間斷請求數據,這樣做理論上可以,但是太消耗性能,基於這樣的情況下
websocket就出現了
普通的ajax請求數據是單向的,也就是客戶端(瀏覽器)主動像服務器發送請求,服務器響應,回傳數據,展示頁面!
websocket是雙向的,建立鏈接之后,服務器數據發生變化,自動把數據推送過來,實現實時響應,展示頁面!
實際效果如下:
代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> </body> <script> var ws = new WebSocket('ws://121.40.165.18:8800'); // 建立 web socket 連接成功觸發事件 ws.onopen = function () { var json="{'a':'1','b':'2'}" ws.send(json);//可以給后台發送參數 }; //接收到消息的回調方法 ws.onmessage = function (event) { alert('數據回來了額'+event.data) console.log(event.data);//后台不間斷發送數據,持續接收。 } //斷開 web socket 連接成功觸發事件 ws.onclose = function () { alert("連接已關閉..."); }; </script> </html>