一、localStorage和sessionStorage
1.使用方法:sessionStorage 存储:sessionStorage.setItem("key","val"); 读取:sessionStorage.getItem("key","val"); 删除指定键:sessionStorage.removeItem("key","val"); 删除全部:sessionStorage.clear() localStorage 存储:localStorage.setItem("key","val"); 读取:localStorage.getItem("key","val"); 删除指定键:localStorage.removeItem("key","val"); 删除全部:localStorage.clear() 2.localStorage可以跨页面通信,存储的数据除非手动清除否则一直存在,比较适合长期有效的自动登录。
sessionStorage不能跨页面通讯,存储的数据在页面被关闭后自动被清除不会被保留,比较适用于短期有效的自动登录(token过期重新请求)
二、websocket客户端向服务端的即时通讯
1.实现客户端与服务器端的通信,最常接触的是http(https)协议,http通信只能是客户端发起请求,服务器响应。webSocket协议可以实现客户端与服务端的双向通话,即:服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息
- webSocket协议的底层协议也是TCP协议
- webSocket协议的标识符为ws,加密后为wss
- webSocket没有同源限制,即webSocket协议可以跨域通信
- webSocket协议是有状态的,即连接后可以保持连接状态
- webSocket可以发送文本,也可以发送二进制数据 2.客户端实现 可以通过webSocket构造函数创建webSocket对象,创建和管理webSocket连接,并通过该连接发送和接收数据的API const webSOcket = new WebSocket('ws://localhost:5001') webSocket.onOpen = function() { console.log('连接成功') webSocket.send('Hello') } webSocket.onerror = function() { console.log('连接失败') } webSocket.onmessage = function(event) { console.log('接收到消息'+event.data) } webSocket.onclose = function() { console.log('连接已关闭') }
三、非同源通信
iframe:对于非同源页面,则可以通过嵌入同源 iframe 作为“桥”,将非同源页面通信转换为同源页面通信