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