六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

H5里的postMessage API圖文詳細說明 詳細說明

[摘要]關于postMessage,雖然說是html5的功能但是支持IE8+,假如你的網站不需要支持IE6和IE7,那么可以使用window.postMessage。既可以跨域傳遞,也可以同域傳遞。我只是簡單的舉一個應用場景,當然,這個功能很多地方可以使用。假如你有一個頁面,頁面中拿到部分用戶信息,點擊進...
關于postMessage,雖然說是html5的功能但是支持IE8+,假如你的網站不需要支持IE6和IE7,那么可以使用window.postMessage。既可以跨域傳遞,也可以同域傳遞。

我只是簡單的舉一個應用場景,當然,這個功能很多地方可以使用。

假如你有一個頁面,頁面中拿到部分用戶信息,點擊進入另外一個頁面,另外的頁面默認是取不到用戶信息的,你可以通過window.postMessage把部分用戶信息傳到這個頁面中。(當然,你要考慮安全性等方面。)

代碼舉例

發送信息:

JavaScript Code復制內容到剪貼板

//彈出一個新窗口   
var domain = 'https://haorooms.com';   
var myPopup = window.open(domain    
            + '/windowPostMessageListener.html','myWindow');   
  
//周期性的發送消息   
setTimeout(function(){   
    //var message = '當前時間是 ' + (new Date().getTime());    
        var message = {name:"站點",sex:"男"}; //你在這里也可以傳遞一些數據,obj等   
    console.log('傳遞的數據是  ' + message);   
    myPopup.postMessage(message,domain);   
},1000);

要延遲一下,我們一般用計時器setTimeout延遲再發用。

接受的頁面

JavaScript Code復制內容到剪貼板

//監聽消息反饋

window.addEventListener('message',function(event) {   
    if(event.origin !== 'https://haorooms.com') return; //這個判斷一下是不是我這個域名跳轉過來的   
    console.log('received response:  ',event.data);   
},false);

如下圖,接受頁面得到數據

如果是使用iframe,代碼應該這樣寫:

JavaScript Code復制內容到剪貼板

//捕獲iframe   
var domain = 'https://haorooms.com';   
var iframe = document.getElementById('myIFrame').contentWindow;   
  
//發送消息   
setTimeout(function(){   
    //var message = '當前時間是 ' + (new Date().getTime());    
        var message = {name:"站點",sex:"男"}; //你在這里也可以傳遞一些數據,obj等   
    console.log('傳遞的數據是:  ' + message);   
        //send the message and target URI   
    iframe.postMessage(message,domain);    
},1000);

接受數據

JavaScript Code復制內容到剪貼板

//響應事件   
window.addEventListener('message',function(event) {   
    if(event.origin !== 'https://haorooms.com') return;   
    console.log('message received:  ' + event.data,event);   
    event.source.postMessage('holla back youngin!',event.origin);   
},false);

上面的代碼片段是往消息源反饋信息,確認消息已經收到。下面是幾個比較重要的事件屬性:

source – 消息源,消息的發送窗口/iframe。
origin – 消息源的URI(可能包含協議、域名和端口),用來驗證數據源。
data – 發送方發送給接收方的數據。

調用實例
主線程中創建 Worker 實例,并監聽 onmessage 事件

JavaScript Code復制內容到剪貼板

<html>    
<head>    
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">    
<title>Test Web worker</title>    
<script type="text/JavaScript">    
 function init(){    
  var worker = new Worker('compute.js');    
  //event 參數中有 data 屬性,就是子線程中返回的結果數據   
  worker.onmessage= function (event) {    
   // 把子線程返回的結果添加到 p 上   
   document.getElementById("result").innerHTML +=    
      event.data+"<br/>";    
  };    
 }    
</script>    
</head>    
<body onload="init()">    
<p id="result"></p>    
</body>    
</html>


在客戶端的 compute.js 中,只是簡單的重復多次加和操作,最后通過 postMessage 方法把結果返回給主線程,目的就是等待一段時間。而在這段時間內,主線程不應該被阻塞,用戶可以通過拖拽瀏覽器,變大縮小瀏覽器窗口等操作測試這一現象。這個非阻塞主線程的結果就是 Web Workers 想達到的目的。

compute.js 中調用 postMessage 方法返回計算結果

JavaScript Code復制內容到剪貼板

var i=0;    
function timedCount(){    
 for(var j=0,sum=0;j<100;j++){    
  for(var i=0;i<100000000;i++){    
   sum+=i;    
  }    
 }    
 // 調用 postMessage 向主線程發送消息   
 postMessage(sum);    
}    
  
postMessage("Before computing,"+new Date());    
timedCount();    
postMessage("After computing,"+new Date());


相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

相關閱讀:

用Js操作HTTP的Cookie的實現步驟

html 邊框虛線的實現步驟

AJAX的常用語法是什么

以上就是H5里的postMessage API圖文詳解 詳細介紹的詳細內容,更多請關注php中文網其它相關文章!


網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。




主站蜘蛛池模板: 视频在线二区 | 外国成人网在线观看免费视频 | 伊人狠狠色丁香婷婷综合下载 | 日韩网站免费 | 我想看一级播放片一级的 | 欧美艳星nikki办公室 | 伊在线视频| 亚洲一区免费看 | 最新国产福利片在线观看 | 中文字幕高清免费不卡视频 | 日本一区免费观看 | 日本高清在线观看视频你懂的 | 婷婷六月色 | 亚洲国产精品久久精品成人 | 青青久在线视频免费观看 | 天天射天天爱天天干 | 欧美亚洲国产另类 | 天天狠天天透天干天天怕处 | 在线看视频的网站入口 | 色综合天天 | 五月激情综合婷婷 | 青娱乐精品 | 亚洲精品免费视频 | 涩涩涩涩涩涩涩 | 五月天婷婷伊人 | 亚洲欧美韩日 | 在线观看精品国产福利片100 | 亚洲第一男人天堂 | 日韩一级片在线观看 | 日日摸夜夜添夜夜添毛片 | 日韩欧美在线免费观看 | 最新91网址 | 日本护士后进式猛烈动态图片 | 性亚洲| 亚洲国产欧洲精品路线久久 | 午夜高清在线观看免费6 | 亚洲国产精品欧美日韩一区二区 | 日本乱码视频a | 特级黄色视频毛片 | 五月天丁香婷婷综合久久 | 中文字幕精品亚洲无线码二区 |