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.0177 sec