U E D R , A S I H C RSS

html5/communicationAPI

1. ปค๋ฎค๋‹ˆผ€…˜ API


  • ”„๋กœธ๋žจ„— ๋น„๋™‹œผ๋กœ ๋ฉ”„ง€  „‹ฌ : ๋АŠจ•œ ฒฐ•ฉ(loosely coupled)
  • ๋ฉ”„ง€ : ž„˜˜ ž๋ฐ”Šคฌ๋ฆฝŠธฒด ๋˜๋Š” ๋‹ˆœ ๋ฌธž—ด
  • †ต‹  ˆ˜–‰˜ ฃผฒด : œˆ๋„šฐ, ๋ฐฑธ๋šด๋“œ ƒœŠคฌ, „œ๋ฒ„—„œ ๋™ž‘•˜๋Š” ”„๋กœธ๋žจ

  • ๋ฉ”„ง€ ด๋ฒคŠธ : ž๋ฐ”Šคฌ๋ฆฝŠธ ฒด ( data, origin, lastEventid, source, ports)

  • ๋ฉ”„ง€ ˆ˜‹  : onmessageด๋ฒคŠธ •ธ๋“ค๋Ÿฌ, ด๋ฒคŠธ ๋ฆฌŠค๋„ˆ (MessageEventฒด –ปŒ)

2. ฌ๋กœŠค ๋„๋จผŠธ ๋ฉ”„•

  • ๋ฉ”„ง€˜ †กˆ˜‹ „ †ต•ด ๋‘˜ ƒ˜ ›น Ž˜ง€ฐ€ „œ๋กœ ๋ฐ„ฃผ ๋ฐ›Œ
  • ๋„๋ฉ”ด ๋‹ค๋ฅธ ›นŽ˜ง€๋„ ๋ฐ„ณตœ ฐ€๋Šฅ

  • †ก‹  : postMessage(data, ports, targetOrigin)
  • ˆ˜‹  : onmessage() ด๋ฒคŠธ •ธ๋“ค๋Ÿฌ

  • postMessage(data, ports, targetOrigin)
    • data : ž„˜˜ ž๋ฐ”Šคฌ๋ฆฝŠธ ฒด
    • ports : messagePortฒด, ƒ๋žตฐ€๋Šฅ
    • targetOrigin : ๋ฉ”„ง€๋ฅผ ˆ˜‹ •˜๋Š” ๋„๋ฉ”ธ(”„๋กœ† œ+๋„๋ฉ”ธ+ฌŠธ๋ฒˆ˜ธ)
  • ๋ณด•ˆ„ œ„•ด ๋ฉ”„ง€๋ฅผ ฃผ ๋ฐ›๋Š” ƒ๋Œ€˜ ‹ › ™••„ˆ˜

  • onMessage ด๋ฒคŠธ •ธ๋“ค๋Ÿฌ

  // ๋ฉ”„ง€๋ฅผ ˆ˜‹ •ด MessageEvent˜•˜ ฒด –ปŒ
  window.onmessage = function(e) {
   // origin †„œผ๋กœ๋ถ€„†ก‹ ˜ ™•ธ
   if(e.origin == "http://localhost"){
      // data †„œผ๋กœ ˆ˜‹ ๋œ ๋ฉ”„ง€ ™•ธ
       alert(e.data);
   }
 };

  • ด๋ฒคŠธ ๋ฆฌŠค๋„ˆ

  // ๋ฉ”„ง€๋ฅผ ˆ˜‹ •ด MessageEvent˜•˜ ฒด –ปŒ
  window.addEventListener("message", function(e) {
     ....
   }, false);

  • ๋ฉ”„ง€ †ก‹  ˜ˆ

 var destFrame = document.getElementById("message-dest");
 destFrame.contentWindow.postMessage("๋ฉ”„ง€ ๋‚ดšฉ", /*ฌŠธ ƒ๋žตฐ€๋Šฅ*,/ "http://desc.example.com"); 

3. „„ ๋ฉ”„•

  • ‹ค๋Œ€๋‹ค ๋ฉ”„ง€ †ต‹ „ ‹˜„•˜ธฐ œ„•œ API
  • „„ : ๋ฉ”„ง€ †ก,ˆ˜‹ „ ‘œ•˜๋Š” ฒด, MessageChannel˜•
  • MessageChannel : ๋‘œ˜ ฌŠธฐ€ง ฌŠธ1 -> ฌŠธ2, ฌŠธ2 -> ฌŠธ1
  • ฌŠธ : MessagePortฒด
    • start() : ฌŠธ๋ฅผ šฉ•  ˆ˜ žˆ๋„๋ก •œ‹ค. „„ ๋ฉ”„• ˆ˜–‰‹œ ฐฐ˜ ฌŠธ— ๋Œ€•ด start()๋ฅผ ˜œ
    • close() : ฌŠธ๋ฅผ ‚ฌšฉ•  ˆ˜ —†ฒŒ •
    • postMessage(message, ports) : ๋ฉ”„ง€ †ก‹ 
    • onmessage : ๋ฉ”„ง€ ๋„ฐฉ‹œ ด๋ฒคŠธ •ธ๋“ค๋Ÿฌฐ€ ˜œ๋จ

  • „„„ šฉ•œ ๋ฉ”„ง€ †ก‹ 

 // ƒ๋žตฐ€๋Šฅ
 channel.port1.start(); 
 channel.port2.start();
 // ฌŠธ๋ฅผ šฉ•œ ๋ฉ”„ง€ †ก‹  
 channel.port1.postMessage("TEST");

4. ฌŠธ ณตœ

  • ฌŠธ๋ฅผ †ก‹ •˜—ฌ ˆ˜‹ žฐ€ †ก‹ ž˜ ฌŠธ— ง ‘  ‘•  ˆ˜ žˆฒŒ•
  • ฌŠธ๋Š” ฐ’ ๋ณต‚ฌ๋กœ  „‹ฌ๋จ
  • ๋ฐ›€ ฌŠธ๋Š” PostMessgae()˜ portsž— ๋ฐฐ—ด ˜•ƒœ๋กœ  „‹ฐ€๋Šฅ
    • ฃผ˜ : ๋ฐฐ—ด•ˆ— nullฌ•จ๋ •Œ,  „— postMessage()˜ ˆ˜๋กœ  „‹ฌ๋œ  žˆ๋Š” ฌŠธฐ€ ฌ•จ๋ •Œ, •œ „„˜ ฌŠธ1ณผ ฌŠธ2ฐ€ ๋™‹œ— ฌ•จ๋ •Œ

5. ด€๋ ‚ฌŠธ

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:40
Processing time 0.0178 sec