设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

全面分析前端的网络请求方式(8)

发布时间:2019-03-28 17:01 所属栏目:21 来源:ConardLi
导读:postMessage()方法允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本档、多窗口、跨域消息传递。 //捕获iframe vardomain='http://scriptandstyle.com'; variframe=document.getElementById('myIFra

postMessage()方法允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本档、多窗口、跨域消息传递。

  1. //捕获iframe  
  2. var domain = 'http://scriptandstyle.com';  
  3. var iframe = document.getElementById('myIFrame').contentWindow;  
  4. //发送消息  
  5. setInterval(function(){  
  6.     var message = 'Hello!  The time is: ' + (new Date().getTime());  
  7.     console.log('blog.local:  sending message:  ' + message);  
  8.         //send the message and target URI  
  9.     iframe.postMessage(message,domain);   
  10. },6000);  
  1. //响应事件  
  2. window.addEventListener('message',function(event) {  
  3.     if(event.origin !== 'http://davidwalsh.name') return;  
  4.     console.log('message received:  ' + event.data,event);  
  5.     event.source.postMessage('holla back youngin!',event.origin);  
  6. },false);  

postMessage跨域适用于以下场景:同浏览器多窗口间跨域通信、iframe间跨域通信。

WebSocket

WebSocket 是一种双向通信协议,在建立连接之后,WebSocket 的 server 与 client 都能主动向对方发送或接收数据而不受同源策略的限制。       

  1. function WebSocketTest(){  
  2.             if ("WebSocket" in window){  
  3.                alert("您的浏览器支持 WebSocket!");  
  4.                // 打开一个 web socket  
  5.                var ws = new WebSocket("ws://localhost:3000/abcd");  
  6.                ws.onopen = function(){  
  7.                   // Web Socket 已连接上,使用 send() 方法发送数据  
  8.                   ws.send("发送数据");  
  9.                   alert("数据发送中...");  
  10.                };  
  11.                ws.onmessage = function (evt) {   
  12.                   var received_msg = evt.data;  
  13.                   alert("数据已接收...");  
  14.                };  
  15.                ws.onclose = function(){   
  16.                   // 关闭 websocket  
  17.                   alert("连接已关闭...");   
  18.                };  
  19.             } else{  
  20.                // 浏览器不支持 WebSocket  
  21.                alert("您的浏览器不支持 WebSocket!");  
  22.             }  
  23.          }  

文中如有错误,欢迎在评论区指正,谢谢阅读。

【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读