中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

詳解HTML5中的Communication API基本使用方法
來源:易賢網 閱讀:1516 次 日期:2016-07-09 09:52:37
溫馨提示:易賢網小編為您整理了“詳解HTML5中的Communication API基本使用方法”,方便廣大網友查閱!

這篇文章主要介紹了HTML5中的Communication API基本使用方法,文中涉及了用于構建實時和跨域通信的兩個重要模塊:跨文檔消息通訊和XMLHttpRequest Level 2,需要的朋友可以參考下

1.跨文檔消息通信

跨文檔消息通信可以確保iframe、標簽頁、窗口間安全地進行跨源通信。它把postMessage API定義為發送消息的標準方式。利用postMessage發送消息非常簡單,代碼如下所示:

chatFrame.contextWindow.postMessage('Hello,world','http://www.example.com');

接收消息時僅需在頁面種增加一個事件處理函數。當某個消息到達時,通過檢查消息的來源來決定是否對這條消息進行處理。

消息事件是一個擁有data(數據)和origin(源)屬性的DOM事件。data屬性是發送方傳遞的實際消息,而origin屬性是發送來源。

postMessage API不僅可以勝任同源文檔間的通信,而且在瀏覽器不允許非同源通信的情況下,postMessage API也很有用。鑒于它的一致性和易用性,在同源文檔間通信時也推薦使用postMessage。在JavaScript環境的通信中始終應使用postMessage API,例如使用HTML5 Web Worker通信時。

1.1 理解源安全

HTML5榮光引入源(origin)的概念對域安全進行了闡明和改進。源是在網絡上用來建立信任關系的地址的子集。源由規則(scheme)、主機(host)、端口(post)組成。

源的概念中不考慮路徑。

HTML5定義了源的序列化。源在API和協議中以字符串的形式出現。

postMessage的安全規則確保了消息不會被傳遞到非預期的源頁面中。當發送消息時,由發送方制定接收方的源。如果發送方用來調用postMessage的窗口不具有特定的源(例如用戶跳轉到了其他站點),瀏覽器就不會傳送消息。

類似地,接受消息的時候,發送方的源也被作為消息的一部分。為避免偽造,消息源由瀏覽器提供。接收方可以決定處理哪些消息,以及忽略哪些消息。我們可以保留一份白名單,告訴瀏覽器僅僅處理可信源的消息。

最好永遠不要對來自第三方的字符串求值。再者,要避免使用eval方法處理應用內部字符串??梢酝ㄟ^window.JSON或者json,.org解析器使用JSON。

1.2 跨文檔消息通信的瀏覽器支持情況

常用的做法是檢測XMLHttpRequest對象中是否存在withCredentials屬性:

JavaScript Code

var xhr = new XMLHttpRequest(); if (typeof xhr.withCredentials === undefined) { //不支持跨源的XMLHttpRequest } else { //支持跨源的XMLHttpRequest }  

1.3 使用postMessage API

提示 HTML5定義的MessageEvent接口也是HTML5 WebSockets和HTML5 WebWorkers的一部分。HTML5的通信功能用用于接受消息的API與MessageEvent接口是一致的。其他通信類API,如EventSource API和Web Workers,也都是使用MessageEvent接口來傳遞消息。

1.4 使用postMessage API創建應用

發送消息

通過調用目標頁面window對象中的postMessage()函數可發送消息,代碼如下:

JavaScript Code

window.postMessage("Hello, world", "porta");  

第一個參數包括要發送的數據,第二個參數是消息傳送的目的地。要發送消息給iframe,可以再相應iframe的contentWindow中調用postMessage,代碼如下:

JavaScript Code

document.getElementsByTagName("iframe")[0].contentWindow.postMessage("Hello, world", "cha");  

監聽消息事件

接收消息時僅需在頁面中增加一個事件處理函數。當某個消息到達時,通過檢查消息的來源來決定是否對這條消息進行處理。

JavaScript Code

window.postMessage("Hello, world", "porta");  

消息事件是一個擁有data(數據)和origin(源)屬性的DOM事件。data屬性是發送方傳遞的實際消息,而origin屬性是發送來源。

源由規則(scheme)、主機(host)、端口(port)組成。

例如:由于規則不同(如https與http),所以頁面與頁面的源是不同的。

源的概念中不考慮路徑。如:與只是路徑不同,他們是相同的源。

源在API和協議中以字符串的形式出現。

JavaScript Code

var originWhiteList = ["porta", "game", ""]; function checkWhiteList(origin) { for (var i=0; i<originWhiteList.length; i++) { if (origin === originWhiteList[i]) { return true; } } return false; } function messageHandler(e) { if (checkWhiteList(e.origin)) { processMessage(e.data); } else { //忽略來自未知源的消息 } }  

postMessage API可以適用于同源和非同源通信,鑒于它的一致性,在同源文檔間通信時也推薦適用postMessage。

2 XMLHttpRequest Level2

作為XMLHttpRequest的改進版,XMLHttpRequest Level2在功能上有了很大的改進。主要集中在兩個方面:

(1)跨源XMLHttpRequests;

(2)進度事件(Progress events)

2.1 跨源XMLHttpRequst

XMLHttpRequestLevel2通過CORS(Cross Origin Resource Sharing,跨源資源共享)實現了跨源XMLHttpRequests。

跨源HTTP請求包括一個Origin頭部,拓為服務器提供HTTP請求的源信息。頭部由瀏覽器保護,不能被應用程序代碼修改。從本質上講,它與跨文檔消息通信中消息事件的origin屬性作用相同。

CORS規范要求,對一些敏感行為——如申請證書的請求或除了GET和POST以外的OPTIONS預檢(preflight)請求,必須由瀏覽器發送給服務器,以確定這種行為能否被支持和允許,這意味著成功通信的背后或許需要由具備CORS出了能力的服務器來支持。

2.2 進度事件

新版XMLHttpRequest中最重要的API改進之一是增加了對進度的響應。

XMLHttpRequest Level2用了一個有意義的名字Progress進度來命名進度事件。

3 進階功能

3.1 結構化的數據

早期版本的postMessage僅支持字符串。后來的版本支持JavaScript對象、canvas imageData和文件等其他數據類型。由于不同瀏覽器對規范支持的差異,對不同的對象類型的支持情況也不同。

3.2 Framebusting

Framebusting技術可以用來保證某些內容不被加載到jframe中。應用程序首先檢測其所在的窗口是否為最外層的窗口(window.top),若不是則跳脫包含它的框架,代碼如下所示:

JavaScript Code

if(window!=window.top)   

{   

window.top.location=location;   

}  

3.3二進制數據

支持新的二進制API(如Typed Array)的瀏覽器可以用XMLHttpRequest來發送二進制數據。Level 2規范支持調用send()方法發送Blob和ArrayBuffer對象

XML/HTML Code

var a = new Uint8Array([8,6,7,5,3,0,9]); var xhr = new XMLHttpRequest(); xhr.open("POST", "/data/", true); console.log(a); xhr.send(a.buffer);  

XMLHttpRequest Level 2也會公開二進制響應數據。將responseType屬性值設置為text、document、arraybuffer或blob來控制 有response屬性返回的對象類型。如果想要查看HTTP響應體包含的原始字節,需要將responseTyper屬性值設為arraybuffer或blob。

更多信息請查看網頁制作
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美午夜大胆人体| 日韩视频一区二区三区在线播放| 狠狠色香婷婷久久亚洲精品| 亚洲国产小视频在线观看| 午夜国产精品视频| 国产精品啊v在线| 一区二区三区视频在线| 欧美理论电影在线播放| 亚洲国产日韩欧美在线图片 | 欧美精品一区在线观看| 亚洲电影免费在线观看| 免播放器亚洲一区| 在线观看视频亚洲| 蜜臀久久久99精品久久久久久 | 日韩亚洲一区在线播放| 欧美国产国产综合| 亚洲国产美女久久久久| 欧美99久久| 亚洲欧洲久久| 欧美精品一区二| 中文高清一区| 国产精品专区h在线观看| 欧美一区二区三区成人| 国产午夜精品麻豆| 久久久亚洲国产天美传媒修理工| 国内精品久久久久久| 久久久亚洲成人| 亚洲人成7777| 欧美性猛交99久久久久99按摩| 亚洲欧美日韩另类| 国产一区二区三区黄| 久久综合色8888| 亚洲精品视频免费观看| 国产精品v欧美精品v日韩| 香蕉国产精品偷在线观看不卡 | 裸体歌舞表演一区二区| 亚洲区第一页| 国产精品国产| 久久久久**毛片大全| 91久久久国产精品| 国产精品久久99| 久久精品欧洲| 亚洲人成毛片在线播放| 国产精品大全| 久久久久成人网| 99国内精品久久久久久久软件| 国产精品高潮呻吟久久av无限 | 今天的高清视频免费播放成人 | 国产精品久久一卡二卡| 欧美一区网站| 亚洲欧洲精品一区二区三区| 国产精品精品视频| 麻豆亚洲精品| 亚洲一区二区综合| 在线欧美日韩国产| 国产精品久久久久久久久久免费看 | 亚洲专区一二三| 韩国欧美一区| 欧美色中文字幕| 久久亚洲综合色| 亚洲私人黄色宅男| 亚洲国产第一| 国产婷婷精品| 国产精品劲爆视频| 欧美精品18videos性欧美| 欧美一区二区三区精品电影| 亚洲人成在线观看一区二区| 国产精品美女| 欧美激情区在线播放| 欧美专区在线观看| 一区二区三区四区国产精品| 亚洲高清久久网| 国产日韩一区二区三区在线| 欧美日韩精品免费| 免费成人av| 久久精品99国产精品酒店日本| 一本久久综合亚洲鲁鲁| 亚洲高清激情| 狠狠色狠狠色综合日日tαg| 国产精品欧美一区二区三区奶水| 欧美成人一区二区三区在线观看| 欧美在线一级va免费观看| 一区二区三区四区国产| 亚洲欧洲综合另类| 永久91嫩草亚洲精品人人| 国产欧美精品国产国产专区| 欧美日韩在线播放三区四区| 欧美jizz19性欧美| 久久一二三区| 久久精品在线观看| 欧美在线短视频| 香蕉成人啪国产精品视频综合网| 亚洲一二三级电影| 亚洲视频免费观看| 日韩视频永久免费| 亚洲激情自拍| 亚洲电影自拍| 亚洲第一综合天堂另类专| 狠狠色伊人亚洲综合成人| 国产视频在线一区二区| 国产日韩欧美在线看| 国产精品一区二区你懂得| 国产精品麻豆欧美日韩ww| 欧美视频亚洲视频| 国产精品第13页| 欧美视频日韩视频| 国产精品男人爽免费视频1| 国产精品美女一区二区| 国产精品国产a级| 国产精品激情偷乱一区二区∴| 欧美体内谢she精2性欧美| 欧美吻胸吃奶大尺度电影| 国产精品v亚洲精品v日韩精品| 欧美视频观看一区| 国产精品美女久久久久久免费| 欧美三区美女| 国产精品自拍视频| 国产亚洲一区精品| 狠狠综合久久av一区二区小说| 精品成人在线观看| 亚洲欧洲日韩在线| 在线性视频日韩欧美| 亚洲综合不卡| 久久国产精品久久久久久电车| 欧美在线播放一区| 麻豆免费精品视频| 欧美国产精品一区| 国产精品国产三级国产专播品爱网| 国产精品久久福利| 国产在线观看一区| 亚洲国产岛国毛片在线| 亚洲国产中文字幕在线观看| 日韩视频在线一区二区| 亚洲午夜日本在线观看| 久久国产黑丝| 欧美高清视频一区二区| 欧美日韩视频在线第一区| 国产精品免费观看在线| 国内精品久久久久久久影视蜜臀 | 久久久99国产精品免费| 美女主播一区| 欧美亚洲第一页| 好吊日精品视频| 日韩午夜在线观看视频| 欧美一级视频免费在线观看| 老司机午夜精品| 欧美性片在线观看| 极品av少妇一区二区| 一区二区成人精品| 久久精品国产69国产精品亚洲| 欧美激情一区二区三区| 国产伦精品一区二区三区在线观看 | 国内精品美女在线观看| 亚洲国产mv| 亚洲一区区二区| 裸体歌舞表演一区二区| 国产精品夫妻自拍| 在线免费高清一区二区三区| 亚洲一区二区三区乱码aⅴ| 久久久另类综合| 国产精品对白刺激久久久| 影音先锋亚洲电影| 亚洲自拍电影| 欧美精品97| 一区二区视频免费完整版观看| 在线一区二区三区四区| 久久午夜精品| 国产精品永久免费观看| 亚洲三级色网| 久久全国免费视频| 国产日产欧产精品推荐色| 一区二区高清视频在线观看| 久久综合婷婷| 国产手机视频一区二区| 一区二区冒白浆视频| 老司机aⅴ在线精品导航| 国产美女精品| 亚洲特级毛片| 日韩视频免费| 亚洲欧美日韩一区| 国产精品一区二区你懂得| 一区二区三区精品在线| 国产精品美女主播| 亚洲欧美在线视频观看| 国产一区二区三区免费在线观看| 国产日韩欧美二区| 国产精品高清网站| 午夜激情一区| 国产精品日韩欧美一区| 亚洲午夜高清视频| 蜜臀99久久精品久久久久久软件| 国产精品爽黄69| 久久国内精品视频| 亚洲精品永久免费| 欧美成人首页| 国产精品日韩欧美大师| 一本久久精品一区二区| 免费观看欧美在线视频的网站| 国产欧美91| 亚洲一区日韩在线|