有时候我们要做一种实时展示数据的大屏展示页面,类似与京东双十一那种,
这时候数据交互该怎么写呢,使用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>