Ajax FAQ
AJAX Developer Resource Center
 

ÀÚ¹Ù °³¹ßÀÚ¸¦ À§ÇÑ AJAX FAQ

±Û: Greg Murray
¹ø¿ª: Çѱ¹½ã 6±â ½ã½ºÅ¸ ±è ¹Ì ¿µ
°¨¼ö:Àڹ٠èÇǾð ¾ç ¼ö ¿­

Áö±Ý AJAX¸¦ »ç¿ëÇÏ½Ç ±âȸ°¡ ´«¾Õ¿¡ ÀÖ½À´Ï´Ù. ¸¹Àº »ç¶÷µéÀÌ AJAX¸¦ ÅëÇØ »õ·Î¿î ¼¼°è¸¦ ³»´Ùº¸°í ÀÖ½À´Ï´Ù. ´ëºÎºÐÀÇ °³¹ßÀÚµéÀÌ AJAX¸¦ ±âÁ¸ÀÇ ÇÁ·¹ÀÓ¿÷À» ÅëÇÏ¿© Á¢ÇÏ´Â µ¿¾È ¿©·¯ºÐÀº ±âÁ¸¿¡ Á¦°øµÈ °Í ÀÌ»óÀÇ ±â´ÉÀ» °æÇèÇØº¸½Ê½Ã¿À. º» FAQ´Â ¾ÖÇø®ÄÉÀ̼ǿ¡ AJAX ±â´ÉÀ» Ãß°¡Çϱ⠿øÇÏ´Â ÀÚ¹Ù °³¹ßÀÚµéÀ» À§ÇØ Á¦À۵Ǿú½À´Ï´Ù.


Java Studio Creator and AJAX [spacer]
  1. AJAX¸¦ »ç¿ëÇØ¾ß ÇÒ±î¿ä?
  2. AJAX´Â Java¿Í ȣȯ °¡´ÉÇմϱî?
  3. Áö±Ý »ç¿ëÇϰí ÀÖ´Â ¼­¹öÃø ÇÁ·¹ÀÓ¿÷ÀÌ AJAX¸¦ Á¦°øÇØ ÁÖÁö ¾ÊÀ»±î¿ä?
  4. ¾îµð¼­ºÎÅÍ ½ÃÀÛÇØ¾ß ÇÒ±î¿ä?
  5. AJAX ±â´ÉÀ» Á÷Á¢ »ý¼ºÇϱâ À§ÇØ ¾Ë¾Æ¾ßÇÒ °ÍÀº ¹«¾ùÀԴϱî?
  6. ²À java script¸¦ ¹è¿ö¾ß Çϳª¿ä?
  7. ¾î¶² ÀÚ¹Ù ½ºÅ©¸³Æ® libraries¿Í ÇÁ·¹ÀÓ¿÷µéÀÌ »ç¿ë °¡´ÉÇմϱî?
  8. Return typeÀ¸·Î XMLÀ̳ª text, ÀÚ¹Ù ½ºÅ©¸³Æ®, HTMLÀ» »ç¿ëÇØ¾ß Çϳª¿ä?
  9. AJAX¸¦ »ç¿ëÇÒ ¶§ °í·ÁÇØ¾ßÇÒ Á¡Àº ¹«¾ùÀԴϱî?
  10. ÀÚ¹Ù ½ºÅ©¸³Æ®¸¦ ¾î¶»°Ô µð¹ö±ëÇϳª¿ä?
  11. AJAX È£ÃâÀ» À§ÇØ HTTP GET ¶Ç´Â POST¸¦ »ç¿ëÇØ¾ß Çմϱî?
  12. ¾î¶»°Ô ±¹Á¦ÀûÀÎ AJAX ÀÎÅÍ·¢¼ÇÀ» °³¹ßÇÏÁÒ?
  13. µ¿½Ã¿¡ ¹ß»ýÇÏ´Â AJAX request¸¦ ¾î¶»°Ô ó¸®ÇØ¾ß ÇÒ±î¿ä?
  14. AJAX client¿Í interactÇϱâ À§ÇØ server¿¡¼­ ÇÏ´Â ÀÏÀº ¹«¾ùÀԴϱî?
  15. AJAX clientÀÇ »óŸ¦ ¾îµð¿¡ ÀúÀåÇÏÁö¿ä?
  16. formÀ̳ª formÀÇ ÇÑ ºÎºÐÀ» ÆäÀÌÁö¸¦ »õ·Î°íħÇÏÁö ¾Ê°í »ðÀÔÇÏ´Â ¹æ¹ýÀº¿ä?
  17. ÄÁÆ®·ÑÇÏ´Â °ÍÀº ¼­¹öÀԴϱî clientÀԴϱî?
  18. AJAX¿Í °ü·ÃµÈ º¸¾È À̽´´Â ¹«¾ùÀԴϱî?
  19. Synchronous¿Í synchronous request¸¦ °¢°¢ ¾î¶² ¶§ »ç¿ëÇÏÁÒ?
  20. ¾ÖÇø´°ú Ç÷¯±×ÀεéÀº ¾î¶»½À´Ï±î?
  21. 'µÚ·Î'¿Í '¾ÕÀ¸·Î' ¹öưÀ» ¾î¶»°Ô ó¸®ÇÏÁö¿ä?
  22. AJAX¸¦ »ç¿ëÇØ¼­ ¾î¶»°Ô À̹ÌÁö¸¦ º¸³¾ ¼ö ÀÖ½À´Ï±î?
  23. AJAX Æú¸µÀ» Çϱâ À§ÇÑ ¾²·¹µå¸¦ ¾î¶»°Ô »ý¼ºÇϳª¿ä?

AJAX¸¦ »ç¿ëÇØ¾ß ÇÒ±î¿ä?

±× ¿ì¼ö¼ºÀ¸·Î ¼¼°£ÀÇ È­Á¦°¡ µÇ°í ÀÖ´Â AJAXÀÌÁö¸¸, ¾î¶² ȯ°æ¿¡¼­´Â »ç¿ëÀÌ ¾î·Á¿ï ¼ö ÀÖ½À´Ï´Ù. AJAX´Â ÃֽйöÀüÀÇ ºê¶ó¿ìÀú¿¡¼­¸¸ ÀÛµ¿ÇÏ´Â µî ºê¶ó¿ìÀú ȣȯ¿¡ Ãë¾àÁ¡À» º¸À̸ç, AJAXÀÇ »ç¿ëÀ» À§ÇÑ »õ·Î¿î SKILL-SET ½ÀµæÀ» ÇÊ¿ä·Î ÇÕ´Ï´Ù. AJAXÀÇ ¼¼°è¿¡ º»°ÝÀûÀ¸·Î ¶Ù¾îµé±â Àü¿¡ Alex BosworthÀÇ ºí·Î±×¿¡¼­ ¸î°¡Áö AJAX ½Ç¼ö¿¡ ´ëÇØ È®ÀÎÇØº¸¼¼¿ä. AJAX Mistakes, by Alex Bosworth

ºñ·Ï »ç¿ë ȯ°æ»ó¿¡ ¸î °¡Áö Á¦¾àÀÌ Á¸ÀçÇϱâ´Â ÇÏÁö¸¸, AJAX¸¦ »ç¿ëÇÒ °æ¿ì ½Ã½ºÅÛ ÀÀ´ä ½Ã°£ÀÌ È¹±âÀûÀ¸·Î ªÀº È¿°úÀûÀÎ ½Ö¹æÇâ À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀÌ °¡´ÉÇÕ´Ï´Ù. AJAX ±â¹Ý ¾ÖÇø®ÄÉÀ̼ÇÀÌ Á¤¸»·Î ´õ ºü¸¥°¡¿¡ ´ëÇØ¼­´Â ³í¶õÀÇ ¿©Áö°¡ ÀÖÁö¸¸, µ¥ÀÌŸ°¡ µÚ¿¡¼­ 󸮵ǰí ÀÖ´Â µ¿¾È È­¸é¿¡¼­´Â ¹Ù·Î Çǵå¹éÀÌ ÀÌ·ç¾îÁö¹Ç·Î »ç¿ëÀÚ´Â ½Ã½ºÅÛÀÌ Áï°¢ÀûÀ¸·Î ¹ÝÀÀÇÑ´Ù°í ´À³¢°Ô µË´Ï´Ù. ¸¸¾à ºê¶ó¿ìÀú ȣȯ ¹®Á¦¸¦ ó¸®ÇÒ ¼ö ÀÖÀ¸¸ç, ½Å±â¼ú¿¡ ¹àÀº ¾ó¸®¾î´äÅÍÀ̰ųª Á»´õ ½Ç·ÂÀ» ³ôÀÌ°í ½ÍÀº °³¹ßÀÚ¶ó¸é AJAX »ç¿ëÀ» °­·ÂÈ÷ ÃßõÇÕ´Ï´Ù. ¾ÖÇø®ÄÉÀ̼ÇÀ» AJAXÈ­ÇÒ ¶§´Â ÀÛÀº ºÎºÐÀ̳ª ÄÄÆ÷³ÍÆ®(component)ºÎÅÍ ½ÃÀÛÇÏ¿© Â÷±ÙÂ÷±Ù ÁøÇàÇÏ´Â °ÍÀÌ Çö¸íÇÒ °ÍÀÔ´Ï´Ù. »õ·Î¿î Å×Å©³î·ÎÁö´Â ¾ðÁ¦³ª ¸Å·ÂÀûÀÌÁö¸¸, AJAX¸¦ »ç¿ëÇÏ´Â ¸ñÀûÀº ¾ÖÇø®ÄÉÀÌ¼Ç »ç¿ëÀÚ¸¦ Æí¸®ÇÏ°Ô ÇÏ´Â °ÍÀÌÁö ¾îÁö·´°Ô ÇÏ´Â °ÍÀÌ ¾Æ´ÔÀ» ±â¾ïÇսôÙ.

AJAX´Â Java¿Í ȣȯ °¡´ÉÇմϱî?

¹°·ÐÀÔ´Ï´Ù. Java´Â AJAX¿Í ¸Å¿ì Àß ¸Â½À´Ï´Ù. AJAX Ŭ¶óÀÌ¾ðÆ® ÆäÀÌÁö Á¦ÀÛ, AJAX ¸®Äù½ºÆ®ÀÇ Ã³¸®, AJAX Ŭ¶óÀÌ¾ðÆ®¸¦ À§ÇÑ server side state ¼³Á¤, AJAX Ŭ¶óÀ̾ðÆ®ÀÇ ¿¬°á µî¿¡ Java Enterprise Edition ¼­¹ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. JavaServer Faces ÄÄÆ÷³ÍÆ® ¸ðµ¨Àº AJAX component¸¦ Á¤ÀÇÇÏ°í »ç¿ëÇϴµ¥ ¸Å¿ì ÀûÇÕÇÕ´Ï´Ù.

Áö±Ý »ç¿ëÇϰí ÀÖ´Â ¼­¹öÃø ÇÁ·¹ÀÓ¿÷ÀÌ AJAX¸¦ Á¦°øÇØ ÁÖÁö ¾ÊÀ»±î¿ä?

´ç½ÅÀº AJAX¸¦ ÀÌ¹Ì »ç¿ëÇϰí ÀÖÀ»Áöµµ ¸ð¸¨´Ï´Ù. ÇöÀçµµ ¸¹Àº ÀÚ¹Ù ±â¹Ý ÇÁ·¹ÀÓ¿÷µéÀÌ ÀÏÁ¤ ¼öÁØÀÇ AJAX ÀÎÅÍ·¢¼ÇÀ» Á¦°øÇϰí ÀÖÀ¸¸ç, AJAX ±â´ÉÀÌ ´õ¿í °­È­µÈ »õ·Î¿î ÇÁ·¹ÀÓ¿÷°ú ÄÄÆ÷³ÍÆ® ¶óÀ̺귯¸®°¡ °è¼ÓÇØ¼­ °³¹ßµÇ°í ÀÖ½À´Ï´Ù. AJAX¸¦ Á¦°øÇÏ´Â ÀÚ¹Ù ÇÁ·¹ÀÓ¿÷Àº ³Ê¹«³ª ¸¹°í ´Ù¾çÇϱ⠶§¹®¿¡ ¿©±â¼­ ´Ù ³ª¿­ÇÒ ¼ö´Â ¾øÁö¸¸, www.ajaxpatterns.org/Java_Ajax_Frameworks¿¡ ÀÖ´Â ÀÌ ¸®½ºÆ®°¡ ÁÁÀº Âü°í°¡ µÉ °ÍÀÔ´Ï´Ù.

¾ÆÁ÷ ¾î¶² ÇÁ·¹ÀÓ¿÷À» ¾µÁö °áÁ¤ÇÏÁö ¾ÊÀ¸¼Ì´Ù¸é, JavaServer Faces³ª JavaServer Faces ±â¹ÝÀÇ ÇÁ·¹ÀÓ¿÷À» ÃßÃµÇØ µå¸³´Ï´Ù. JavaServer Faces components´Â ÀÚ¹Ù ½ºÅ©¸³Æ®³ª AJAX ÀÎÅÍ·¢¼Çs, DHML processingÀ» »ý¼ºÇϴµ¥ »ç¿ëµÇ´Â ¸¹Àº °ÍµéÀ» Ãß»óÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼­, ½ã ÀÚ¹Ù ½ºÆ©µð¿À Å©¸®¿¡ÀÌÅÍ °°Àº JSF ȣȯ IDEÀÇ Ç÷¯±× ÀÎÀ¸·Î, ¶Ç JSF ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÒ ¶§ °£´ÜÇÑ AJAX¸¦ »ç¿ëÇÒ ¼ö ÀְԵ˴ϴÙ.

¾îµð¼­ºÎÅÍ ½ÃÀÛÇØ¾ß ÇÒ±î¿ä?

ÇöÀç »ç¿ëÇϰí ÀÖ´Â ÇÁ·¹ÀÓ¿÷ÀÇ ±â´ÉÀÌ ÃæºÐÄ¡ ¾Ê´Ù°í ´À³¢°Å³ª, Á÷Á¢ AJAX ÄÄÆ÷³ÍÆ®³ª ±â´ÉÀ» °³¹ßÇϱ⠿øÇÑ´Ù¸é, Asynchronous ÀÚ¹Ù ½ºÅ©¸³Æ® Technology and XML (AJAX) With Java 2 Platform, Enterprise Edition¶ó´Â ±ÛÀ» Àд °ÍÀ¸·Î ½ÃÀÛÇϽñ⠹ٶø´Ï´Ù.

¾ÆÁÖ ±âÃÊÀÇ ¿¹Á¦(¼Ò½ºÄÚµå Æ÷ÇÔ)¸¦ º¸±â ¿øÇÑ´Ù¸é Using AJAX with Java Technology¿¡¼­ ±â¼úÀû ÆÁÀ» ¾òÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù. ´õ ¸¹Àº AJAX ÀÚ·á ¸ñ·ÏÀºBlueprints AJAX Home ÆäÀÌÁö¿¡¼­ È®ÀÎÇϽñ⠹ٶø´Ï´Ù.

´ÙÀ½ ´Ü°è¿¡¼­´Â AJAX libraries and frameworks À» ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù. Ŭ¶óÀ̾ðÆ®Ãø AJAX ½ºÅ©¸³Æ®¸¦ Á÷Á¢ ÀÛ¼ºÇϰíÀÚ ÇÒ ¶§ óÀ½ºÎÅÍ °í¹ÎÇØ¾ßÇÏ´Â ¼ö°í¸¦ ´ú¾îÁÝ´Ï´Ù.

Dave Crane, Eric Pascarello, Darren JamesÀÇ Ã¥ AJAX in Action ¶ÇÇÑ ÁÁÀº ÀÚ·á°¡ µÉ °ÍÀÔ´Ï´Ù. ÀÌ Ã¥¿¡´Â ÀÚ¹Ù °³¹ßÀÚµéÀÌ ÀÚ¹Ù ½ºÅ©¸³Æ®¸¦ ÀÍÈú ¼ö ÀÖ´Â ºÎ·ÏÀÌ ¼ö·ÏµÇ¾î ÀÖ½À´Ï´Ù.

AJAX ±â´ÉÀ» Á÷Á¢ »ý¼ºÇϱâ À§ÇØ ¾Ë¾Æ¾ßÇÒ °ÍÀº ¹«¾ùÀԴϱî?

±âÁ¸ÀÇ AJAX ÄÄÆ÷³ÍÆ®¸¦ »ç¿ëÇÏÁö ¾Ê°íÀÚ ÇÑ´Ù¸é ´ÙÀ½ÀÇ ¸î°¡Áö¸¦ À¯ÀÇÇØ¾ßÇÕ´Ï´Ù.

¸ÕÀú AJAXÀÇ ±âÃʰ¡ µÇ´Â Dynamic HTMLÀ» ¹è¿ö¾ß ÇÕ´Ï´Ù. DHTMLÀº »ç¿ëÀÚ¿Í À¥ÆäÀÌÁö °£¿¡ ºê¶ó¿ìÀú ±â¹Ý ½Ç½Ã°£ ÀÎÅÍ·¢¼ÇÀ» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù. DHTMLÀº ÀÚ¹Ù ½ºÅ©¸³Æ®, DOM(Document Object Model),CSS(Cascading Style Sheets)ÀÇ Á¶ÇÕÀ¸·Î ÀÌ·ç¾îÁ® ÀÖ½À´Ï´Ù.

  • ÀÚ¹Ù ½ºÅ©¸³Æ® -ÀÚ¹Ù ½ºÅ©¸³Æ®´Â ¸ðµç ÁÖ¿ä ºê¶ó¿ìÀú°¡ Áö¿øÇϰí ÀÖ´Â ´À½¼ÇÑ Çü Á¤ÀÇ °´Ã¼ ±â¹Ý(loosely typed Object based)ÀÇ ½ºÅ©¸³Æ® ¾ð¾î·Î½á AJAXÀÇ Æ®·£Àè¼ÇÀÇ Çʼö ¿ä¼ÒÀÔ´Ï´Ù. ÆäÀÌÁö ¾ÈÀÇ ÀÚ¹Ù ½ºÅ©¸³Æ®´Â ±× ÆäÀÌÁö¿¡¼­ ÆäÀÌÁö ·Îµå, Ŭ¸¯, Ű ÀÔ·Â(in a form element) µîÀÇ Æ¯Á¤ À̺¥Æ®°¡ ¹ß»ýÇϸé È£ÃâµË´Ï´Ù.
  • DOM - Á¤ÇüÈ­µÈ ¹®¼­¿¡ ¾×¼¼½ºÇÏ¿© Á¶ÀÛÇϱâ À§ÇÑ APIÀÔ´Ï´Ù. ´ëºÎºÐÀÇ °æ¿ì DOMÀº XMLÀ̳ª HTML ¹®¼­ÀÇ ±¸Á¶¸¦ ³ªÅ¸³À´Ï´Ù.
  • CSS - Ç¥Çö(presentation)ÀÌ ³»¿ë(content)°ú °ü°è¾øÀÌ ºÐ¸®µÇµµ·Ï Çϸç, JavaSctript·Î º¯°æÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

HTTPÀÇ ±âº»ÀûÀÎ ¿äû/¹ÝÀÀ Ư¼ºÀ» ÀÌÇØÇÏ´Â °Íµµ Áß¿äÇÕ´Ï´Ù. ¿¹¸¦ µé¾î XMLhttpRequest¿Í HTTP ¹ÝÀÀ Äڵ带 ±¸¼ºÇÒ ¶§ GET°ú Olst ¸Þ¼ÒµåÀÇ Â÷À̸¦ °£°úÇÑ´Ù¸é callbackÀ» ó¸®ÇÒ ¶§ ¹Ì¼¼ÇÑ ¹ö±×µéÀÌ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù.

¾î¶² ¸é¿¡¼­ ÀÚ¹Ù ½ºÅ©¸³Æ®´Â Ŭ¶óÀ̾ðÆ®Ãø Á¢ÂøÁ¦¶ó°íµµ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¹Ù ½ºÅ©¸³Æ®´Â Xmlhttprequest ¿ÀºêÁ§Æ®¸¦ »ý¼ºÇϰųª ºñµ¿±â È£ÃâÀ» À¯¹ßÇϴµ¥ »ç¿ëµÇ¸ç, µ¹¾Æ¿Â ³»¿ëÀ» ÆÄ½ÌÇÏ°í ºÐ¼®ÇÏ´Â µ¥ »ç¿ëÇÕ´Ï´Ù. ÀÚ¹Ù ½ºÅ©¸³Æ®´Â ¶ÇÇÑ µ¹¾Æ¿Â ¸Þ½ÃÁö¸¦ ÇÁ·Î¼¼½ÌÇÏ´Â µ¥ »ç¿ëµÇ¸ç, DOM API¸¦ »ç¿ëÇÏ´Â HTML¿¡ CSS¸¦ ¼öÁ¤Çϱâ À§ÇØ »õ·Î¿î ¸Þ½ÃÁö¸¦ »ðÀÔÇÏ´Â µ¥¿¡µµ »ç¿ëµË´Ï´Ù.

²À java script¸¦ ¹è¿ö¾ß Çϳª¿ä?

³×, À¥ ¾ÖÇø®ÄÉÀ̼ǿ¡ »õ·Î¿î AJAX ±â´ÉÀ» °³¹ßÇϰíÀÚ ÇÑ´Ù¸é ±âº»ÀûÀ¸·Î´Â ±×·¸½À´Ï´Ù.

±×·¯³ª JSF ÄÄÆ÷³ÍÆ®¿Í ÄÄÆ÷³ÍÆ® ¶óÀ̺귯¸®°¡ ÀÚ¹Ù ½ºÅ©¸³Æ®, DOM, CSSÀÇ µðÅ×ÀÏÀ» Ãß»óÈ­ÇÒ ¼ö ÀÖÀ¸¸ç, ÀÌ ÄÄÆ÷³ÍÆ®µéÀÌ AJAX ÀÎÅÍ·¢¼ÇÀ» °¡´ÉÇÏ°Ô ¸¸µå´Âµ¥ ÇÊ¿äÇÑ Àΰø¹°(artifacts)À» ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ, ÀÚ¹Ù ½ºÆ©µð¿À Å©¸®¿¡ÀÌÅÍ °°Àº ºñÁÖ¾ó ÅøµéÀº ¾ÖÇø®ÄÉÀ̼ÇÀ» Á¦ÀÛÇϴµ¥ JSF ÄÄÆ÷³ÍÆ®°¡ enableµÈ AJAX¸¦ ÀÌ¿ëÇϱ⵵ Çϸç, ÀÌ¿¡ µû¶ó Åø °³¹ßÀÚ´Â AJAXÀÇ ¼¼¼¼ÇÑ ÄÚµåµéÀº Á÷Á¢ ´Ù·çÁö ¾Ê¾Æµµ µË´Ï´Ù. ±×·¯³ª »ç¿ëÀÚ °íÀ¯ÀÇ JSF ÄÄÆ÷³ÍÆ®¸¦ °³¹ßÇϰųª ÇϳªÀÇ Åø¿¡ ¿©·¯ ÄÄÆ÷³ÍÆ®¸¦ ¹­À¸·Á°í ÇÑ´Ù¸é ÀÚ¹Ù ½ºÅ©¸³Æ®¿¡ ´ëÇÑ ±âº»ÀûÀÎ ÀÌÇØ°¡ ²À ÇÊ¿äÇÕ´Ï´Ù. ºê¶ó¿ìÀú°£ Â÷À̸¦ Ãß»óÈ­ÇÑ ÀÚ¹Ù ½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇϴ Ŭ¶óÀÌ¾ðÆ® ÀÚ¹Ù ½ºÅ©¸³Æ® ¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¹Ù ½ºÅ©¸³Æ® object¸¦ ¹è¿ì°íÀÚÇÏ´Â ÀÚ¹Ù °³¹ßÀÚ¿¡°Ô´Â Object Hierarchy and Inheritance in ÀÚ¹Ù ½ºÅ©¸³Æ®°¡ Å« µµ¿òÀÌ µÉ °ÍÀÔ´Ï´Ù.

¾î¶² ÀÚ¹Ù ½ºÅ©¸³Æ® ¶óÀ̺귯¸®¿Í ÇÁ·¹ÀÓ¿÷µéÀÌ »ç¿ë °¡´ÉÇմϱî?

ÀÌ¹Ì ¸¹Àº ¶óÀ̺귯¸®¿Í ÇÁ·¹ÀÓ¿÷µéÀÌ ºê¶ó¿ìÀú Â÷ÀÌ¿Í °°Àº ¼º°¡½Å °ÍµéÀ» Ãß»óÈ­ÇÏ´Â °ÍÀ» ½±°ÔÇϰí ÀÖÀ¸¸ç, Áö±Ýµµ ¸¹ÀÌ »ý°Ü³ª°í ÀÖ½À´Ï´Ù. ±× Áß dojo toolkit, prototype, DWR ÀÌ ¼¼°¡Áö ÁÁÀº ¶óÀ̺귯¸®¸¦ ¼Ò°³ÇÕ´Ï´Ù.

  • Dojo Toolkit Àº ¸®Ä¡ÇÑ À¥ ¾ÖÇø®ÄÉÀ̼Ç(rich web application)ÀÇ °³¹ßÀ» Áö¿øÇϱâ À§ÇÑ APIµé°ú À§Á¬(widget)µéÀ» Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. Dojo´Â intelligent packaging system, UI È¿°ú, Drag and drop API, widget API, event abstraction, client storage API, AJAX ÀÎÅÍ·¢¼Ç APIµîÀ» Æ÷ÇÔÇÕ´Ï´Ù. Dojo´Â ºê¶ó¿ìÀúÀÇ 'µÚ·Î(back)' ¹öư °¨Áö ±â´É, url ¹ÙÀÇ urlÀ» ºÏ¸¶Å©ÇÏ´Â ±â´É, client ÂÊ¿¡¼­ AJAX³ª ÀÚ¹Ù½ºÅ©¸³Æ®°¡ ¿ÏÀüÈ÷ Áö¿øµÇÁö ¾ÊÀ» ¶§ ºÎµå·¯¿î ó¸® ±â´É°ú °°Àº ³×ºñ°ÔÀÌ¼Ç °ü·Ã ¼­Æ÷Æ®¿Í °°Àº º¸ÆíÀûÀÎ »ç¿ë¿¡ °üÇÑ ¹®Á¦µéÀ» ÇØ°áÇØ ÁÝ´Ï´Ù. Dojo´Â ÀÚ¹Ù½ºÅ©¸³Æ® ¶óÀ̺귯¸®ÀÇ ¸Æ°¡À̹öÄ® °°Àº Á¸Àç¶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇϳªÀÇ ¶óÀ̺귯¸®·Î½á´Â °¡Àå ³ÐÀº ¹üÀ§ÀÇ ¿É¼ÇÀ» Á¦°øÇϸç, ½Å/±¸¹öÀüÀ» ¸··ÐÇÏ°í ¿©·¯ ºê¶ó¿ìÀúµéÀ» ÈǸ¢È÷ Áö¿øÇÕ´Ï´Ù.

  • Prototype Àº ÀÚ¹Ù½ºÅ©¸³Æ® AJAX ¿ÀºêÁ§Æ®¸¦ Æ÷ÇÔÇÑ AJAX ÀÎÅÍ·¢¼Ç¿¡ ÃÊÁ¡À» ¸ÂÃß°í ÀÖ½À´Ï´Ù. ÀÌ´Â ¿äûÀ» Çϰųª, ¹®¼­ÀÇ ÀϺθ¦ ¾÷µ¥ÀÌÆ®Çϰųª, ¹®¼­¿¡ ³»¿ëÀ» »ðÀÔÇϰųª, ¹®¼­ÀÇ ÀϺθ¦ ÁÖ±âÀûÀ¸·Î ¾÷µ¥ÀÌÆ® ÇÏ´Â °Í°ú °°Àº ±âº»ÀûÀΠŽºÅ©¸¦ ¼öÇàÇÒ ¸î°¡Áö ¿ÀºêÁ§Æ®¸¦ Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. ÇÁ·ÎÅäÆÄÀÔ ÀÚ¹Ù½ºÅ©¸³Æ® ¶óÀ̺귯¸®´Â AJAX ¿äûÀ» ³ªÅ¸³¾ ÀÏ·ÃÀÇ ÀÚ¹Ù½ºÅ©¸³Æ® ¿ÀºêÁ§Æ®µéÀ» Æ÷ÇÔÇϰí ÀÖÀ¸¸ç, ÆäÀÌÁö ³» ÄÄÆ÷³ÍÆ®¿¡ Á¢±ÙÇϰųª DOMÀ» Á¶ÀÛÇÏ´Â À¯Æ¿¸®Æ¼ ±â´Éµµ Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. Script.aculo.us¿Í Rico´Â ÇÁ·ÎÅäŸÀÔÀÇ ÃÖ»óÀ§¿¡ ±¸ÃàµÇ¾úÀ¸¸ç UI È¿°ú¸¦ Á¦°ø, µå·¡±× ¾Ø µå¶øÀ» Áö¿øÇϰí, ÀϹÝÀûÀÎ ÀÚ¹Ù½ºÅ©¸³Æ® Á᫐ À§Á¬À» Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. prototypeÀº AJAX ÀÎÅÍ·¢¼ÇÀ» ºñ·Ô ±âº»ÀûÀÎ ¸î °³ÀÇ Å½ºÅ©¸¸ Áö¿øÇÏ´Â °ÍÀ» ã´Â »ç¶÷µé¿¡°Ô ÀûÇÕÇÕ´Ï´Ù. ¸¸¾à UI È¿°úµµ ¿øÇÑ´Ù¸é Rico³ª Script.aculo.us¸¦ ¼±ÅÃÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.

  • Yahoo UI Library ´Â À¯Æ¿¸®Æ¼ ¶óÀ̺귯¸®À̸ç, ¸®Ä¡ Ŭ¶óÀÌ¾ðÆ®¸¦ Áö¿øÇϴµ¥ API¸¦ »ç¿ëÇÏ´Â À§Á¬µéÀÇ ÁýÇÕÀ¸·Î, Å©·Î½º ºê¶ó¿ìÀú AJAX ÀÎÅÍ·¢¼Ç, ¾Ö´Ï¸ÞÀ̼Ç, DOM ½ºÅ©¸³Æ® Áö¿ø, µå·¡±× ¾Ø µå¶ø, Å©·Î½º ºê¶ó¿ìÀú À̺¥Æ® Áö¿ø µîÀ» Æ÷ÇÔÇÕ´Ï´Ù. Yahoo UI ¶óÀ̺귯¸®´Â ¼¼½ÉÇÏ°Ô ÀÛ¼ºµÇ¾î ÀÖÀ¸¸ç ¸¹Àº ¿¹Á¦¸¦ Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù.

  • DWR (Dynamic Web Remoting) ´Â Ŭ¶óÀ̾ðÆ®ÃøÀÌÀÚ ¼­¹öÃø ÇÁ·¹ÀÓ¿÷À¸·Î, °³¹ßÀÚ°¡ Ŭ¾ÆÀ̾ðÆ®Ãø ÀÚ¹Ù½ºÅ©¸³Æ®ºÎÅÍ ÀÚ¹Ù ¿£ÅÍÇÁ¶óÀÌÁî ¿¡µð¼Ç À¥ ÄÁÅ×ÀÌ³Ê ³» Æò¹üÇÑ ±âÁ¸ ÀÚ¹Ù ¿ÀºêÁ§Æ®±îÁö RPC¸¦ È£ÃâÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â µ¥¿¡ ÃÊÁ¡À» ¸ÂÃß°í ÀÖ½À´Ï´Ù. ¼­¹öÃø¿¡¼­ DWRÀº ÀÚ¹Ù ¿ÀºêÁ§Æ®¿Í ÀÎÅÍ·¢¼ÇÇÏ´Â µ¥ ¼­ºí·¿À» »ç¿ëÇÏ¿© ÀÚ¹Ù ¿ÀºêÁ§Æ®³ª XML ¹®¼­ÀÇ ¿ÀºêÁ§Æ® Ç¥ÇöÀ» ¸®ÅÏÇÕ´Ï´Ù. DWRÀº ½±°Ô µ¹¾Æ°¥ °ÍÀÌ°í ´Ù¸¥ ÀÚ¹Ù ±â¼úµé°ú Àß Á¶È­µË´Ï´Ù. ÅëÇÕÀÌ ÀߵǴ Ŭ¶óÀ̾ðÆ®/¼­¹ö °â¿ë ÇÁ·¹ÀÓ¿÷À» ã´Â´Ù¸é DWRÀ» »ç¿ëÇÏ½Ã¸é µË´Ï´Ù.

  • Zimbra ´Â ¸®Ä¡ ÀÚ¹Ù½ºÅ©¸³Æ® ±â¹ÝÀÇ Å¬¶óÀÌ¾ðÆ®¿¡°Ô e-mailÀ» ³ëÃâ(expose)ÇÏ´Â ±â´É µî ¸Þ½Ã¡À» °¡´ÉÇÏ°Ô ÇÏ´Â °Í¿¡ ÁßÁ¡À» µÎ´Â Ŭ¶óÀ̾ðÆ®/¼­¹ö ÇÁ·¹ÀÓ¿÷ÀÔ´Ï´Ù. Æ÷ÇԵǾî ÀÖ´Â ÅøÅ¶¿¡´Â, ºê¶ó¿ìÀú Â÷À̸¦ ÃßÃâÇÏ´Â UI toolkit API(´Ù¾çÇÑ ºôÆ®ÀÎ À§Á¬ Æ÷ÇÔ), UI À̺¥Æ® Ä¿¹Â´ÏÄÉÀ̼ǰú Ŭ¶óÀ̾ðÆ®-¼­¹ö À̺¥Æ® Ä¿¹Â´ÏÄÉÀ̼ÇÀ» °¡´ÉÇÏ°Ô ÇÏ´Â À̺¥Æ® API, Ŭ¶óÀÌ¾ðÆ® »ó¿¡¼­ ÀÚ¹Ù½ºÅ©¸³Æ® °³¹ßÀ» ½±°Ô ÇÏ´Â À¯Æ¿¸®Æ¼ Ŭ·¡½º, Å©·Î½º ºê¶ó¿ìÀÚ DOM ¹®Á¦ 󸮸¦ ½±°Ô ÇÏ´Â DOM API Ãß»ó, ÀÚ¹Ù½ºÅ©¸³Æ® Ŭ¶óÀÌ¾ðÆ®°¡ AJAX¿Í SOAP¸¦ ÀÌ¿ëÇÏ¿© Ä¿¹Â´ÏÄÉÀ̼ÇÇÏ´Â °ÍÀ» µ½´Â network API°¡ ÀÖ½À´Ï´Ù.

ÀÚ¹Ù ½ºÅ©¸³Æ®¸¦ À§ÇÑ »õ·Î¿î ¶óÀ̺귯¸®µéÀÌ ½ñ¾ÆÁ® ³ª¿À°í ÀÖÀ¸¸ç, À§ÀÇ ¸ñ·ÏÀº ¸¹ÀÌ ¾Ë·ÁÁø l¶óÀ̺귯¸®µé¿¡ ´ëÇØ¼­¸¸ ¼Ò°³ÇÑ °ÍÀÔ´Ï´Ù. ¶óÀ̺귯¸®¸¦ ¼±ÅÃÇÒ ¶§´Â °³¹ßÀÚ º»ÀÎÀÇ Çʿ並 °¡Àå Àß ÃæÁ·½ÃÄÑ ÁÖ´Â °ÍÀ» ¼±ÅÃÇϽñ⠹ٶø´Ï´Ù. ÇϳªÀÇ ¶óÀ̺귯¸®¸¦ ¼±ÅÃÇÏ´Â °ÍÀÌ ÁÁÁö¸¸, ¿©·¯ Á¾·ùÀÇ ÇÁ·¹ÀÓ¿÷À» »ç¿ëÇÏ¿©µµ ¹®Á¦ ¾ø½À´Ï´Ù. Á» ´õ Ŭ¶óÀ̾ðÆ®Ãø ÇÁ·¹ÀÓ¿÷ÀÇ ¸®½ºÆ®´Â Survey of AJAX/ÀÚ¹Ù ½ºÅ©¸³Æ® Libraries¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.

¸®ÅÏ Å¸ÀÔÀ¸·Î XMLÀ̳ª text, ¶Ç´Â ÀÚ¹Ù ½ºÅ©¸³Æ®, HTMLÀ» »ç¿ëÇØ¾ß Çϳª¿ä?

°æ¿ì¿¡ µû¶ó ´Ù¸¨´Ï´Ù. AJAXÀÇ X°¡ XML¸¦ ¶æÇϱâ´Â ÇÏÁö¸¸, ¸î¸î AJAX ÇÁ·ÎÆ÷³ÍÆ®ÀÇ °æ¿ì ÇØ´ç AJAX ÀÚü´Â ÀÚ¹Ù ½ºÅ©¸³Æ®³ª html, ´Ü¼ø text µîÀÇ ÀÌ(ì¶)Á¾ payloadÀÇ »ç¿ëÀ» ÀüÇô Á¦ÇÑÇϰí ÀÖÁö ¾ÊÀ½À» ±Ý¹æ ¾Ë¾ÆÃ§ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.

  • XML - À¥ ¼­ºñ½º¿Í AJAX´Â ¼­·Î¸¦ À§ÇØ ¸¸µé¾îÁø °Íó·³ Àß ¸Â½À´Ï´Ù. RESTful Web Services·ÎºÎÅÍ XML ÄÁÅÙÃ÷¸¦ ´Ù¿î·Îµå¹Þ°í ÆÄ½ÌÇϴµ¥ Ŭ¶óÀ̾ðÆ®Ãø API¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. (±×·¯³ª ¸î¸î SOAP ±â¹Ý À¥¼­ºñ½º ¾ÆÅ°ÅØÃ³ÀÇ °æ¿ì payload°¡ »ó´çÈ÷ Å©°í º¹ÀâÇÒ ¼ö ÀÖÀ¸¸ç, ÀÌ¿¡ µû¶ó AJAX Å×Å©´ÐÀ» Àû¿ëÇϱ⿡ ºÎÀû´çÇÒ ¼ö ÀÖ½À´Ï´Ù.)
  • ´Ü¼ø Text - ¼­¹ö¿¡¼­ »ý¼ºµÈ ÅØ½ºÆ®°¡ ¹®¼­¿¡ ÁÖÀԵǰųª Ŭ¶óÀ̾ðÆ®Ãø ·ÎÁ÷¿¡ ÀÇÇØ evaluateµË´Ï´Ù.
  • ÀÚ¹Ù ½ºÅ©¸³Æ® - ¼­¹öÃø ÄÄÆ÷³ÍÆ®°¡ ÀÚ¹Ù½ºÅ©¸³Æ® °´Ã¼ ¼±¾ðÀ» Æ÷ÇÔÇÑ ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ fragment¸¦ Àü´ÞÇÑ´Ù´Â ¿¹¿Ü¸¦ Á¦¿ÜÇϰí´Â ´Ü¼ø textÀÇ ¿¬Àå¼±À¸·Î º¼ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ eval() ±â´ÉÀ» ÀÌ¿ëÇÏ¿© Ŭ¶óÀÌ¾ðÆ® »ó¿¡¼­ °´Ã¼¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¥ÀÌÅÍ ±³È¯ ¸í¼¼¿¡ ±â¹ÝÇÑ ÀÚ¹Ù½ºÅ©¸³Æ® °´Ã¼ÀÎ JSONÀÌ ÀÌ ¹æ¹ýÀ» ÀÌ¿ëÇÕ´Ï´Ù.
  • HTML - ¼­¹ö¿¡¼­ »ý¼ºµÈ HTML fragment¸¦ ¹®¼­¿¡ ¹Ù·Î ÁÖÀÔÇÏ´Â °ÍÀº ÀϹÝÀûÀ¸·Î ¸Å¿ì È¿°úÀûÀÎ AJAX Å×Å©´ÐÀÔ´Ï´Ù. ÇÏÁö¸¸, ¼­¹öÃø ÄÄÆ÷³ÍÆ®¸¦ Ŭ¶óÀ̾ðÆ®ÀÇ È­¸é µð½ºÇ÷¹ÀÌ¿Í °°µµ·Ï À¯ÁöÇÏ´Â °ÍÀº º¹ÀâÇÒ ¼ö ÀÖ½À´Ï´Ù.

MashupÀº ÀÌ(ì¶)Á¾ÀÇ À¥¼­ºñ½º³ª ±âŸ ´Ù¸¥ ¿Â¶óÀÎ API¿¡¼­ °¡Á®¿Â ³»¿ëÀ» Á¶ÇÕÇÔÀ¸·Î½á ¿ÏÀüÈ÷ »õ·Î¿î À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µå´Â °ÍÀ» ÀÏÄ´ À¯¸íÇÑ ¿ë¾îÀÔ´Ï´Ù. Mashup¿¡ ´ëÇÑ ÁÁÀº ¿¹´Â craiglist.orgÀÇ ÁÖÅà ±¤°í¿Í maps.google.comÀÇ Áöµµ¸¦ ±×·¡ÇÈÀûÀ¸·Î Á¶ÇÕÇÏ´Â housingmaps.com¿¡¼­ ã¾Æº¼ ¼ö ÀÖ½À´Ï´Ù.

AJAX¸¦ »ç¿ëÇÒ ¶§ °í·ÁÇØ¾ßÇÒ Á¡Àº ¹«¾ùÀԴϱî?

AJAX ÀÎÅÍ·¢¼Ç°ú DHTMLÀ» ÅëÇØ °Ë»öµÈ µ¥ÀÌÅ͸¦ ´ÙÀ̳»¹ÍÇÏ°Ô »ç¿ëÇÏ¿© ÆäÀÌÁö¸¦ ¾÷µ¥ÀÌÆ®ÇÏ¸é ÆäÀÌÁöÀÇ ¸ð½À°ú »óŰ¡ °ú°¨È÷ ¹Ù²ð ¼öµµ ÀÖ½À´Ï´Ù. »ç¿ëÀÚ´Â ¿øÇÏ´Â ¶§¿¡ ºê¶ó¿ìÀúÀÇ 'µÚ·Î' ȤÀº '¾ÕÀ¸·Î'¹öưÀ» »ç¿ëÇϰųª, ÆäÀÌÁö¸¦ ºÏ¸¶Å©Çϰųª, url bar¿¡¼­ urlÀ» Ä«ÇÇÇÏ°í ±×°ÍÀ» e-mailÀ̳ª ¿Â¶óÀÎ ¸Þ½ÅÀú¸¦ ÅëÇØ Ä£±¸¿Í °øÀ¯Çϰųª ÆäÀÌÁö¸¦ ÀμâÇÒ ¼ö ÀÖ½À´Ï´Ù. AJAX ±â¹Ý ¾ÖÇø®ÄÉÀÌ¼Ç ¼³°è ½Ã ³×ºñ°ÔÀ̼Ç, ºÏ¸¶Å·, Àμâ, ºê¶ó¿ìÀú Áö¿øÀÇ °æ¿ì¿¡ ¿¹»óµÇ´Â ºñÇìÀ̺ñ¾î¿¡ ´ëÇØ ´ÙÀ½°ú °°ÀÌ °í·ÁÇØ¾ß ÇÕ´Ï´Ù.

  • ³×ºñ°ÔÀÌ¼Ç - ¾ÖÇø®ÄÉÀÌ¼Ç µðÀÚÀο¡¼­ ºê¶ó¿ìÀúÀÇ [µÚ·Î, ¾ÕÀ¸·Î, »õ·Î°íħ, Áñ°Üã±â¿¡ Ãß°¡] ¹öưÀ» Ŭ¸¯ÇÒ °æ¿ìÀÇ ºñÇìÀ̺ñ¾î. ¼öÀÛ¾÷À¸·Î(manually)Áö³­ history manipulationÀ» ¼öÇàÇÒ ¼ö ÀÖ´Ù¸é, APIÀÇ history manipulation°ú ³×ºñ°ÔÀÌ¼Ç ÄÁÆ®·ÑÀ» Á¦°øÇÏ´Â Dojo¿Í °°Àº ÀÚ¹Ù½ºÅ©¸³Æ® ÇÁ·¹ÀÓ¿÷À» »ç¿ëÇÏ´Â °ÍÀÌ ´õ ½¬¿ï °ÍÀÔ´Ï´Ù.
  • Áñ°Üã±â Ãß°¡¿Í URL °øÀ¯Çϱâ - ¸¹Àº »ç¿ëÀÚµéÀº URLÀ» Áñ°Üã±â¿¡ Ãß°¡Çϰųª, ÁÖ¼Òâ¿¡¼­ Àß¶ó³»¾î ºÙ¿©³Ö±â ÇÏ°í ½Í¾îÇÕ´Ï´Ù. Dojo´Â Áñ°Üã±â Ãß°¡¿Í URL Á¶ÀÛÀ» À§ÇÑ Å¬¶óÀÌ¾ðÆ® ÃøÀ» Á¦°øÇÕ´Ï´Ù.
  • Àμâ - ´ÙÀ̳»¹ÍÇÏ°Ô Ç¥ÇöµÇ´Â ÆäÀÌÁö´Â °¡²û ÀμâÇÒ ¶§ ¹®Á¦°¡ µÇ±âµµ ÇÕ´Ï´Ù.

°³¹ßÀڷμ­ AJAX¸¦ »ç¿ëÇÒ ¶§ °í·ÁÇØ¾ß ÇÒ ¶Ç´Ù¸¥ Á¡;

  • ºê¶ó¿ìÀú Áö¿ø - ¸ðµç AJAX/DHTMLÀÇ ±â´ÉÀÌ ¸ðµç ºê¶ó¿ìÀú¿¡¼­ Áö¿øµÇ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. Áö¿ø ºê¶ó¿ìÀú°ú °¡´ÉÇÑ ´ë¾È ¸ñ·ÏÀº quirksmode.org¿¡¼­ º¼ ¼ö ÀÖ½À´Ï´Ù.
  • ÀÚ¹Ù½ºÅ©¸³Æ® ²ô±â - ¸¸¾à »ç¿ëÀÚ°¡ ÀÚ¹Ù½ºÅ©¸³Æ® ±â´ÉÀ» Ȱ¼ºÈ­ÇÏÁö ¾Ê´Â´Ù¸é ¾î¶² ÀÏÀÌ ¹ú¾îÁúÁöµµ ¹Ì¸® °í·ÁÇØ¾ß ÇÕ´Ï´Ù. ´õ±¸³ª, °£È¤ ¾î¶² »ç¿ëÀÚÀÇ À¥ ºê¶ó¿ìÀú¿¡¼­´Â ¸î °¡Áö ÀÌÀ¯·Î ÀÚ¹Ù½ºÅ©¸³Æ®¿Í cssÁö¿øÀÌ ºÒ°¡´ÉÇÒ ¼ö¹Û¿¡ ¾ø½À´Ï´Ù.
  • ´ë±â ½Ã°£ - ¼³°è½Ã ´ë±â ½Ã°£À» °í·ÁÇØ¾ß ÇÕ´Ï´Ù. ÀÛµ¿ ÁßÀÎ ¾ÖÇø®ÄÉÀ̼ÇÀº ´ç¿¬È÷ deployedµÇ¾úÀ» ¶§ÀÇ ¾ÖÇø®ÄÉÀ̼Ǻ¸´Ù ÈξÀ ¹ÝÀÀÀÌ ºü¸¨´Ï´Ù. ¶ÇÇÑ, ¿©·¯ °³ÀÇ ¸®Äù½ºÆ®¸¦ »ý¼ºÇßÀ» ¶§ ¸ðµç return order°¡ º¸ÀåµÇ´Ï ¾ÊÀ½À» ±â¾ïÇØ¾ß ÇÕ´Ï´Ù. ´ë±â ½Ã°£¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³íÀÇ´Â AJAX Latency problems: myth or reality?¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.
  • Á¢±Ù¼º - Àå¾Ö°¡ ÀÖ´Â »ç¶÷µéµµ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â »çÀÌÆ®¸¦ ¸¸µå´Â °ÍÀº °í±ÍÇÑ Á¤½ÅÀÇ Â÷¿øÀÌ ¾Æ´Ï¶ó, ¸¹Àº ½ÃÀå¿¡¼­ ¹ýÀ¸·Î ±ÔÁ¤µÇ¾î ÀÖ½À´Ï´Ù. ¸î¸î ÈǸ¢ÇÑ Å×Å©³î·ÎÁöµé ´öºÐ¿¡ ½Ã°¢ Àå¾Ö, û°¢ Àå¾Ö, ½Åü Àå¾Ö, ¾ð¾î Àå¾Ö, ÀÎÁö Àå¾Ö, ½Å°æ Àå¾Ö µî Àå¾Ö¸¦ °¡Áø »ç¶÷µéµµ À¥À» ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù. Á¶±Ý ¾Õ¼± ½Ã°¢À¸·Î ¸î¸î º£½ºÆ® ÇÁ·ºÆ¼½º¸¦ »ìÆìº»´Ù¸é enabling ±â¼ú°ú ȣȯÀÌ °¡´ÉÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀ» Á¦ÀÛÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.

Degradability¶õ ´Ù¾çÇÑ À¥ ºê¶ó¿ìÀúÀÇ ´Ù¾çÇÑ »ç¾ç¿¡ ÀûÀÀÇϱâ À§ÇØ À¥ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ¾²ÀÌ´Â Å×Å©´ÐÀ» ¸»ÇÕ´Ï´Ù. ¸¹Àº AJAX ¶óÀ̺귯¸®´Â ÀÚµ¿ degradability¸¦ ³»ÀåÇϰí ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ÀÚüÀûÀ¸·Î AJAX ±â´ÉÀ» ÄÚµùÇϰí ÀÖ´Ù¸é, W3C(World Wide Web Consortium)¿Í °°Àº Ç¥ÁØ ±â±¸¿¡¼­ ÃßõÇÏ´Â ÁÁÀº ¿¹Á¦³ª Web Standards Ä¿¹Â´ÏƼ °°Àº °÷¿¡¼­ ÀÌ·ç¾îÁö´Â ¿òÁ÷ÀÓ¿¡ °ü½ÉÀ» °¡Á®º¸½Ã±â ¹Ù¶ø´Ï´Ù. À̸¦ ÅëÇØ AJAX¸¦ Áö¿øÇÏÁö ¾Ê´Â ºê¶ó¿ìÀú¿¡¼­µµ µ¹¾Æ°¡´Â ¾ÖÇø®ÄÉÀ̼ÇÀ» Á¦ÀÛÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀÌ·± ±¸Çü ºê¶ó¿ìÀú¿¡¼­´Â ´«±æÀ» È® Àâ¾Æ²ô´Â ¿ä¼Ò´Â Ç¥ÇöµÇÁö ¾ÊÀ» ¼ö ÀÖÁö¸¸, ¿©ÀüÈ÷ ¹«³­ÇÏ°Ô ÀÛµ¿ÇÒ °ÍÀÔ´Ï´Ù.

´ÜÁö ¸ÚÁ® º¸ÀÌ°Ô Çϱâ À§Çؼ­ AJAX¸¦ »ç¿ëÇØ¼­´Â ¾È µË´Ï´Ù. ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ´Â ÀÌÀ¯´Â »ç¶÷µéÀÌ »ç¿ëÇÏ°Ô Çϱâ À§Çؼ­ÀÔ´Ï´Ù. »ç¿ëÀÚµéÀº ±×µéÀÇ À¥ºê¶ó¿ìÀú¿Í ȣȯÀÌ µÇÁö ¾Ê´Â´Ù¸é ±× ¾ÖÇø®ÄÉÀ̼ÇÀ» »ç¿ëÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ ¾î¶»°Ô µð¹ö±ëÇϳª¿ä?

Ŭ¶óÀ̾ðÆ®Ãø µð¹ö±ë°ú ¼­¹öÃø µð¹ö±ëÀ» µ¿½Ã¿¡ Áö¿øÇÏ´Â ÅøÀº ¸¹Áö ¾Ê½À´Ï´Ù. ±×·¯³ª AJAX ¾ÖÇø®ÄÉÀ̼ÇÀÌ È®»êµÇ¸é »óȲÀÌ ¸¹ÀÌ ¹Ù²ð °ÍÀ̶ó°í »ý°¢ÇÕ´Ï´Ù. ÇÊÀÚÀÇ °æ¿ì ÇöÀç Ŭ¶óÀ̾ðÆ®Ãø µð¹ö±ë°ú ¼­¹öÃø µð¹ö±ëÀ» µû·Î Çϰí ÀÖ½À´Ï´Ù. ¾Æ·¡´Â º¸ÆíÈ­µÈ ºê¶ó¿ìÀúµé¿¡¼­ »ç¿ëµÇ´Â Ŭ¶óÀ̾ðÆ®Ãø µð¹ö°Åµé¿¡ ´ëÇÑ ¼³¸íÀÔ´Ï´Ù.

  • Firefox/Mozilla/Netscape - venkmanÀ̶ó´Â ¸Å¿ì À¯¿ëÇÑ µð¹ö°Å¸¦ Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. ÇÊÀÚ °³ÀÎÀûÀ¸·Î´Â ÁÖ·Î firefox »ó¿¡¼­ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ°í ³ª¼­ ´Ù¸¥ ºê¶ó¿ìÀú¸¦ ½ÃµµÇÏ´Â °ÍÀ» ÁÁ¾ÆÇÕ´Ï´Ù.
  • Safari - Ȱ¼ºÈ­µÇ¾î¾ß ÇÏ´Â µð¹ö°Å¸¦ Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº Safari FAQ¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.
  • Internet explorer - ÀÚ¹Ù ½ºÅ©¸³Æ®¸¦ µð¹ö±ëÇÏ´Â µ¥¿¡ ´ëÇÑ MSDN Documentation°¡ ÀÖ½À´Ï´Ù. IE¸¦ À§ÇÑ developer toolbar ¿ª½Ã µµ¿òÀÌ µÉ °ÍÀÔ´Ï´Ù.

¹°·Ð ¸¹Àº °³¹ßÀÚµéÀÌ »ç¿ëÇÏ´Â alert() functionÀ» System.out.println()¿Í °°ÀÌ ÇÔ¼ö È£ÃâÇϴ°͵µ °¡´ÉÇÕ´Ï´Ù. Dojo¿Í °°Àº ¸î¸î ÇÁ·¹ÀÓ¿÷µéÀº µð¹ö±× statement¸¦ ÃßÀûÇÒ ¼ö ÀÖ´Â APIµéÀ» Á¦°øÇÕ´Ï´Ù.

AJAX È£ÃâÀ» À§ÇØ HTTP GET ¶Ç´Â POST¸¦ »ç¿ëÇØ¾ß Çմϱî?

AJAX request´Â µ¥ÀÌÅ͸¦ °Ë»öÇÒ ¶§(retrieve) µ¥ÀÌÅͰ¡ ÁÖ¾îÁø ¿äû URL·Î ¹Ù²îÁö ¾ÊÀ» °÷¿¡¼­ HTTP GET request¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. HTTP POST´Â »óŰ¡ ¼­¹ö¿¡ ¾÷µ¥ÀÌÆ®µÇ¾úÀ» ¶§ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. À̰ÍÀº HTTP idempotency recommendations ¿Í Àß Á¶È­µÇ¸ç, Àϰü¼ºÀÖ´Â À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ¾ÆÅ°ÅØÃĸ¦ À§ÇØ °­·ÂÇÏ°Ô ±ÇÀåµË´Ï´Ù.

±¹Á¦È­µÈ AJAX ÀÎÅÍ·¢¼ÇÀº ¾î¶»°Ô Á¦°øÇϳª¿ä?

XMLÀ» »ç¿ëÇϰí ÀÖ´Ù´Â »ç½ÇÀÌ ·ÎÄà ÄÁÅÙÃ÷¸¦ AJAX ¸®Äù½ºÆ®¸¦ »ç¿ëÇÏ¿© ÀûÀýÇÏ°Ô º¸³»°í ¹ÞÀ» ¼ö ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÏÁö´Â ¾Ê½À´Ï´Ù. ±¹Á¦È­µÈ AJAX ÄÄÆ÷³ÍÆ®¸¦ Á¦°øÇϱâ À§Çؼ­´Â ´ÙÀ½ÀÇ ÀÛ¾÷ÀÌ ÇÊ¿äÇÕ´Ï´Ù.

  • ÆäÀÌÁöÀÇ chartsetÀ» ÁöÁ¤ÇÑ ¾ð¾î°¡ Áö¿øµÇ´Â ÀÎÄÚµùÀ¸·Î ¼³Á¤ÇÕ´Ï´Ù. ÇÊÀÚ °³ÀÎÀûÀ¸·Î´Â °ÅÀÇ ¸ðµç ¾ð¾î¸¦ Ä¿¹öÇÏ´Â UTF-8À» ÁÖ·Î »ç¿ëÇÕ´Ï´Ù. HTML/JSP ÆäÀÌÁö ³»¿¡¼­ ´ÙÀ½°ú °°Àº ¸ÞŸ ¼±¾ðÀ» ÅëÇØ ÄÁÅÙÃ÷ ŸÀÔÀ» ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    
      
  • ÆäÀÌÁö¿¡¼­ ÀÚ¹Ù ½ºÅ©¸³Æ®´Â ¼­¹ö·Î º¸³»Áø ¸ðµç ÆÄ¶ó¹ÌÅ͸¦ ÀÎÄÚµùÇÕ´Ï´Ù. ÀÚ¹Ù ½ºÅ©¸³Æ®´Â ·ÎÄÃ ÅØ½ºÆ®°¡ 6Áø¹ý ÇüÅ·Π¾²¿©ÀÖ´Â Unicode escape strings¸¦ ¹ÝȯÇÏ´Â escape()ÇÔ¼ö¸¦ Á¦°øÇÕ´Ï´Ù. ÀÚ¹Ù½ºÅ©¸³Æ® ÀÎÄÚµù¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â Comparing escape(), encodeURI(), and encodeURIComponent()¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù,.
  • ¼­¹öÃø ÄÄÆ÷³ÍÆ® »ó¿¡¼­ HttpServletRequest.setCharacterEncoding() ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ¹®ÀÚ ÀÎÄÚµùÀ» ¼³Á¤ÇÕ´Ï´Ù. À̰ÍÀº HttpServletRequest.getParameter()·Î ÆÄ¶ó¸ÞÅ͸¦ ²¨³»±â Àü¿¡ ÇØ¾ßÇÕ´Ï´Ù. UTFÀÇ °æ¿ì¿¡´Â request.setCharactherEncoding("UTF-8");ÀÌ µË´Ï´Ù.

AJAX response¸¦ ¹ÝȯÇÏ´Â ¼­¹öÃø ÄÄÆ÷³ÍÆ®´Â responseÀÇ ÀÎÄÚµùÀ» ÆäÀÌÁö¿¡¼­ »ç¿ëµÈ ÀÎÄÚµù°ú °°°Ô ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù.

    response.setContentType("text/xml;charset=;UTF-8");
    response.getWriter().write("<response>invalid</response>"); 

Java Enterprise Edition technologies·Î AJAX¸¦ »ç¿ëÇÏ´Â °Í¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸´Â AJAX and Internationalization¸¦ Âü°íÇϽðí, ¿©·¯ °¡Áö ¾ð¾î·Î µÈ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ´Â °Í¿¡ ´ëÇÑ Á¤º¸´Â Developing Multilingual Web Applications Using JavaServer Pages Technology¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.

µ¿½Ã¿¡ ¹ß»ýÇÏ´Â AJAX ¿äûÀ» ¾î¶»°Ô ó¸®ÇØ¾ß ÇÒ±î¿ä?

ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ »ç¿ëÇϸé Çѹø¿¡ ÇÑ °³ ÀÌ»óÀÇ AJAX request¸¦ ÇÁ·Î¼¼½ÌÇÏ°Ô µÉ ¼ö ÀÖ½À´Ï´Ù. ÄÚµåÀÇ ÀûÀýÇÑ Â÷ÈÄ ÇÁ·Î¼¼½ÌÀ» º¸ÀåÇϱâ À§ÇÏ¿© ÀÚ¹Ù ½ºÅ©¸³Æ® Closures¸¦ ÀÌ¿ëÇÒ °ÍÀ» ±ÇÇØµå¸³´Ï´Ù. ´ÙÀ½ÀÇ ¿¹Á¦´Â AJAXÀÎÅÍ·¢¼Ç¶ó´Â ÀÚ¹Ù½ºÅ©¸³Æ® °´Ã¼¿¡ ÀÇÇØ Ãß»óÈ­µÈ XMLHttpRequest °´Ã¼¸¦ º¸¿©ÁÝ´Ï´Ù. Àμö·Î¼­ URL°ú ÇÁ·Î¼¼½º°¡ ¿Ï·áµÇ¾úÀ» ¶§ ½ÇÇàµÇ´Â functionÀ» Àü´ÞÇϰí ÀÖ½À´Ï´Ù.

function AJAXÀÎÅÍ·¢¼Ç(url, callback) {

    var req = init();
    req.onreadystatechange = processRequest;
        
    function init() {
      if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
      } else if (window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
    
    function processRequest () {
      if (req.readyState == 4) {
        if (req.status == 200) {
          if (callback) callback(req.responseXML);
        }
      }
    }

    this.doGet = function() {
      req.open("GET", url, true);
      req.send(null);
    }
    
    this.doPost = function(body) {
      req.open("POST", url, true);
      req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      req.send(body);
    }
}

function makeRequest() {
  var ai = new AJAXInteraction("processme", function() { alert("Doing Post Process");});
  ai.doGet();
}


À§ ¿¹Á¦ÀÇ makeRequest() ÇÔ¼ö´Â "processme"¶ó´Â URLÀ» °®´Â AJAXÀÎÅÍ·¢¼Ç°ú, "doing Post Process"¶ó´Â ¸Þ½ÃÁö°¡ ´ã±ä °æ°í ¸Þ½ÃÁö »óÀÚ¸¦ º¸¿©ÁÙ ÀζóÀÎ ÇÔ¼ö¸¦ »ý¼ºÇÕ´Ï´Ù. AJAX ÀÎÅÍ·¢¼ÇÀº ai.doGet()°¡ È£ÃâµÉ ¶§ ½ÃÀÛµÇ°í ¼­¹öÃø ÄÄÆ÷³ÍÆ®°¡ "processme" URL À§¿¡ À§Ä¡ÇÒ ¶§ ¹®¼­¸¦ ¹ÝȯÇÕ´Ï´Ù. ÀÌ ¹®¼­´Â AJAXÀÎÅÍ·¢¼ÇÀÌ »ý¼ºµÉ ¶§ ÁöÁ¤µÈ callback ÇÔ¼ö·Î ³Ñ°ÜÁø °ÍÀÔ´Ï´Ù.

ÀÌ closureÀÇ »ç¿ëÀº ƯÁ¤ÇÑ AJAX ÀÎÅÍ·¢¼Ç°ú °ü·ÃµÈ ÀûÀýÇÑ callback ÇÔ¼ö°¡ È£ÃâµÇµµ·Ï º¸ÀåÇÕ´Ï´Ù. ¾î¶² ÁÖ¾îÁø ½Ã°£¿¡ request¸¦ »ý¼ºÇϴµ¥ »ç¿ëµÇ´Â socketÀÇ ¼ö´Â Á¦ÇѵǾî ÀÖÀ¸¹Ç·Î, ±× ¾È¿¡ º¹¼öÀÇ closure °´Ã¼¸¦ »ý¼ºÇÏ´Â °ÍÀÌ XmlHttpRequest¸¦ »ý¼ºÇÒ ¶§´Â ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ÀÎÅÍ³Ý ÀͽºÇ÷η¯´Â ¿ÀÁ÷ µÎ °³ÀÇ AJAX µ¿½Ã ¿äû¿¡¸¸ ¹ÝÀÀÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¥ ºê¶ó¿ìÀú´Â 3~5°³±îÁö °¡´ÉÇÕ´Ï´Ù. AJAX ÀÎÅÍ·¢¼Ç °´Ã¼µéÀÇ °øÀ¯ Ç®À» Ȱ¿ëÇϽñ⠹ٶø´Ï´Ù.

Client·ÎºÎÅÍ º¹¼öÀÇ AJAX È£ÃâÀ» »ý¼ºÇÒ ¶§ ÇѰ¡Áö ±â¾ïÇØ¾ßÇÒ °ÍÀº, È£Ãâ¿¡ ´ëÇØ ¸ðµÎ ¹ÝÀÀÇÑ´Ù°í º¸ÀåÇÒ ¼ö ¾ø´Ù´Â °ÍÀÔ´Ï´Ù. Closure °´Ã¼ÀÇ callback ³»¿¡ closureÀ» °¡ÁüÀ¸·Î½á depedencyµéÀÌ ¿Ã¹Ù¸£°Ô ÇÁ·Î¼¼½ºµÇ¾úÀ½À» º¸ÁõÇϴµ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

Ajaxian Fire and Forget Pattern¸¦ Àо½Ã¸é µµ¿òÀÌ µÉ °ÍÀÔ´Ï´Ù.

AJAX Ŭ¶óÀÌ¾ðÆ®¿Í ÀÎÅÍ·¢¼ÇÇϱâ À§ÇØ ¼­¹ö »ó¿¡¼­ ÇØ¾ßÇÏ´Â ÀÏÀº ¹«¾ùÀΰ¡¿ä?

'content-type' Çì´õ¸¦ 'text/xml'·Î ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù . ¼­ºí·¿¿¡¼­ ¸®ÅÏ Å¸ÀÔÀÌ XMLÀ̸é HttpServletResponse.setContentType()¸¦ "text/xml"·Î ¼³Á¤ÇÔÀ¸·Î½á ½ÇÇàµÉ ¼ö ÀÖ½À´Ï´Ù. "Content-Type" Çì´õ°¡ ¼³Á¤µÇ¾î ÀÖÀ» °æ¿ì, XMLHttpRequest ½ÇÇàÀÌ ¿¡·¯°¡ ³ª´Â °æ¿ì°¡ ¸¹½À´Ï´Ù. ´ÙÀ½Àº "Content-Type"À» ¼³Á¤ÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.


    response.setContentType("text/xml");
    response.getWriter().write("<response>invalid</response>"); 

¶ÇÇÑ, autocomplete¿Í ij½¬ ¿©ºÎµµ ¼³Á¤ÇÏ´Â ÆíÀÌ ÁÁÀ» ¼ö ÀÖ½À´Ï´Ù.

    response.setContentType("text/xml");
    response.setHeader("Cache-Control", "no-cache");
    response.getWriter().write("<response>invalid</response>"); 

°³¹ßÀÚ¸¦ À§ÇÑ Âü°í»çÇ×: ÀÎÅÍ³Ý ÀͽºÇ÷η¯¿¡¼­´Â ÀÌ Çì´õ°¡ ¼³Á¤µÇ¾îÀÖÁö ¾ÊÀº °æ¿ì HTTP GET¿¡¼­ µ¹¾Æ¿À´Â ¸ðµç AJAX ¹ÝÀÀ¿¡ ´ëÇØ ij½¬µÈ °á°ú¹°À» ÀÚµ¿À¸·Î »ç¿ëÇϹǷΠÀÏÀÌ º¹ÀâÇØÁú ¼ö ÀÖ½À´Ï´Ù. °³¹ßÇÏ´Â Áß¿¡´Â ÀÌ Çì´õ¸¦ ¼³Á¤ÇØ µÎ´Â °ÍÀÌ ÁÁÀ» °ÍÀÔ´Ï´Ù.

AJAX Ŭ¶óÀ̾ðÆ®ÀÇ »óŸ¦ ¾îµð¿¡ ÀúÀåÇϳª¿ä?

´Ù¸¥ ºê¶ó¿ìÀú ±â¹ÝÀÇ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» »ç¿ëÇÏ´Â °æ¿ì¿¡ ´ÙÀ½°ú °°Àº ¸î °¡Áö ¿É¼ÇµéÀÌ ÀÖ½À´Ï´Ù.

  • Ŭ¶óÀ̾ðÆ®ÀÇ ÄíŰ¿¡ - Å©±â Á¦ÇÑÀÌ ÀÖÀ¸¸ç(µµ¸ÞÀδç 4KBÂ¥¸® ÄíŰ ÃÖ´ë 20°³, ÃÑ 80KB) ¾ÏȣȭÇÏÁö ¾Ê´Â ÇÑ ³»¿ëÀÇ º¸¾ÈÀ» Àå´ãÇÒ ¼ö ¾ø½À´Ï´Ù. ¾ÏȣȭÇÏ´Â °ÍÀº ¾î·Á¿î ÀÛ¾÷ÀÌÁö¸¸ ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇϸé ÇÒ ¼ö´Â ÀÖ½À´Ï´Ù.
  • Ŭ¶óÀ̾ðÆ®ÀÇ ÆäÀÌÁö¿¡ - ÀÌ ¹æ¹ýÀ» »ç¿ëÇÏ¸é º¸¾ÈÀº È®½ÇÇÏÁö¸¸ ÀÛ¾÷ÇϱⰡ ¾î·Æ°í ¸»½éÀ» ÀÏÀ¸Å³ ¼ö°¡ ÀÖ½À´Ï´Ù. Storing State on the Client¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.
  • On the client file system - This can be done if the client grants access to the browser to write to the local file system. Ŭ¶óÀ̾ðÆ®ÀÇ ÆÄÀÏ ½Ã½ºÅÛ¿¡ -ºê¶ó¿ìÀú°¡ ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡ Á¢±ÙÇÏ´Â °ÍÀ» Ŭ¶óÀÌ¾ðÆ®°¡ Çã¿ëÇÒ °æ¿ì °¡´ÉÇÑ ¹æ¹ýÀÔ´Ï´Ù. °³Àο¡ µû¶ó ÇʼöÀûÀÎ ¹æ¹ýÀÌ µÉ ¼öµµ ÀÖÀ¸³ª ÁÖÀǰ¡ ¿ä±¸µË´Ï´Ù.
  • ¼­¹ö¿¡ - Ŭ¶óÀÌ¾ðÆ®°¡ ¼­¹ö»óÀÇ »óŸ¦ ¹Ý¿µÇÏ´Â ÀüÅëÀûÀÎ ¸ðµ¨¿¡ °¡±î¿î ¹æ¹ýÀÔ´Ï´Ù. ¾çÂÊÀÇ µ¥ÀÌÅͰ¡ µ¿ÀÏÇϵµ·Ï À¯ÁöÇÏ´Â °ÍÀº ¾à°£ °ñÄ¡¾ÆÇà ¼ö ÀÖÁö¸¸ À̰Ϳ¡ ´ëÇÑ ÇØ°áÃ¥Àº ÀÖ½À´Ï´Ù. (Refreshing Data) ´õ ¸¹Àº ÇÁ·Î¼¼½ÌµÇ´Â Á¤º¸³ª ÄÁÆ®·ÑÀÌ Å¬¶óÀÌ¾ðÆ®·Î À̵¿ÇÒ¼ö·Ï, »óŰ¡ ÀúÀåµÇ¾î ÀÖ´Â °÷Àº °è¼ÓÇØ¼­ °»½ÅµÇ¾î¾ß ÇÒ °ÍÀÔ´Ï´Ù.

16. formÀ̳ª formÀÇ ÀϺθ¦ ÆäÀÌÁö¸¦ »õ·Î°íħÇÏÁö ¾Ê°í »ðÀÔÇÏ´Â ¹æ¹ýÀº ¹«¾ùÀԴϱî?

FormÀ» »ý¼ºÇÒ¶§´Â "form" ¿ä¼Ò "onSubmit" ¼Ó¼ºÀÌ false¸¦ ¹ÝȯÇÏ´Â ÀÚ¹Ù ½ºÅ©¸³Æ® ÇÔ¼ö·Î ¼³Á¤µÇ¾î ÀÖ´Â °ÍÀ» È®ÀÎÇØ¾ß ÇÕ´Ï´Ù.

  <form onSubmit="doAJAXSubmit();return false;" >
   <input type="text" id="tf1" />

   <input type="submit" id="submit1" value="Update"/>
  </>

form ¹öưÀÌ ÀÖ´Â ÇÔ¼ö¸¦ °áÇÕ½ÃÅ´À¸·Î½á ºñ½ÁÇÏ°Ô µ¥ÀÌÅ͸¦ Á¦ÃâÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

  <form onSubmit="doAJAXSubmit();return false;" >
   <input type="text" id="tf1" />

   <input type="button" id="button1" onClick="doAJAXSubmit()" value="Update"/>
  </>

form "onsubmit" ¼Ó¼ºÀÌ ¿©ÀüÈ÷ ¼³Á¤µÇ¾î ÀÖ´Â °Í¿¡ ÁÖ¸ñÇϽñ⠹ٶø´Ï´Ù. ¸¸¾à »ç¿ëÀÚ°¡ ÅØ½ºÆ® Çʵ忡¼­ ¿£Å͸¦ Ä¡¸é formÀÌ ÀÛ¼º¿Ï·áµÇ¾î ¹ö¸®¹Ç·Î, ÀÌ ¹®Á¦¸¦ ÇØ°áÇØ¾ß ÇÕ´Ï´Ù.

ÆäÀÌÁö¸¦ ¾÷µ¥ÀÌÆ®ÇÒ ¶§´Â, ÆäÀÌÁö ¾ÈÀÇ µ¥ÀÌÅ͸¦ ¾÷µ¥ÀÌÆ®Çϱâ Àü¿¡ form µ¥ÀÌÅÍÀÇ AJAX ¾÷µ¥ÀÌÆ®°¡ ¼º°øÀûÀ¸·Î ³¡³µ´ÂÁö ¸ÕÀú È®ÀÎÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é µ¥ÀÌÅͰ¡ ¹«»çÈ÷ ¾÷µ¥ÀÌÆ®µÇÁö ¾ÊÀ» ¼ö ÀÖ°í »ç¿ëÀÚ°¡ ¾ËÁö ¸øÇÒ ¼öµµ ÀÖ½À´Ï´Ù. °³ÀÎÀûÀ¸·Î´Â ºÎºÐÀûÀ¸·Î ¾÷µ¥ÀÌÆ®¸¦ ÇÒ ¶§ Àá½Ã °øÁö¸¦ ¶ç¿ö ³õ¾Ò´Ù°¡, AJAX ÀÎÅÍ·¢¼ÇÀÌ ¼º°øÀûÀ¸·Î ³¡³ª¸é ±×¶§ ÆäÀÌÁö¸¦ ¾÷µ¥ÀÌÆ®ÇÕ´Ï´Ù.

ÄÁÆ®·ÑÇÏ´Â °ÍÀº ¼­¹öÀԴϱî Ŭ¶óÀ̾ðÆ®ÀԴϱî?

±×¶§±×¶§ ´Ù¸¨´Ï´Ù. AJAX¿¡¼­´Â ´ëü·Î 'Áß°£Âë'À̶ó°í ´äÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼­¹öÃø ÄÄÆ÷³ÍÆ®, ȤÀº Ŭ¶óÀ̾ðÆ®Ãø°ú ¼­¹öÃø ÄÁÆ®·Ñ·¯µéÀÌ Á¶ÇÕµÈ °æ¿ì¿¡´Â ÄÁÆ®·ÑÀÇ À§Ä¡°¡ ´õ¿í´õ ÇÑÂÊ¿¡ Ä¡ÁßµÉ ¼ö ÀÖ½À´Ï´Ù.

  • ¼­¹öÃø ÄÁÆ®·Ñ·¯ ÁýÁß - ÀÌ ¶§ÀÇ ÇÙ½ÉÀº Ŭ¶óÀ̾ðÆ®Ãø ÆäÀÌÁöÀÇ µ¥ÀÌÅͰ¡ ¼­¹öÀÇ µ¥ÀÌÅÍ¿Í °°µµ·Ï À¯ÁöÇÏ´Â °ÍÀÔ´Ï´Ù. ¸î¸î ¾ÖÇø®ÄÉÀ̼ÇÀº ¸ðµç »óÅ Á¤º¸¸¦ ¼­¹ö¿¡ ÀúÀåÇÏ°í ¸ðµç ¾÷µ¥ÀÌÆ®¸¦ °£´ÜÇÑ ÀÚ¹Ù½ºÅ©¸³Æ® ÄÁÆ®·Ñ·¯¸¦ ÅëÇØ Ŭ¶óÀÌ¾ðÆ® DOM¿¡ º¸³À´Ï´Ù.
  • Ŭ¶óÀ̾ðÆ®Ãø/ ¼­¹öÃø ÄÁÆ®·Ñ·¯ - ÀÌ·± ¾ÆÅ°ÅØÃÄ´Â ÄÁÆ®·ÑÀ̳ª À̺¥Æ® ÇÁ·Î¼¼½Ì, ÆäÀÌÁö Á¶ÀÛ, Ŭ¶óÀÌ¾ðÆ® »óÀÇ ¸ðµ¨ µ¥ÀÌÅÍ ·£´õ¸µ°ú °ü·ÃµÈ ¸ðµç Ç¥ÇöÀ» ÀÚ¹Ù½ºÅ©¸³Æ®°¡ Çϵµ·Ï ÇÕ´Ï´Ù. ºñÁî´Ï½º ·ÎÁ÷À̳ª ¾÷µ¥ÀÌÆ®µÈ ¸ðµ¨ µ¥ÀÌÅ͸¦ Ŭ¶óÀÌ¾ðÆ®·Î º¸³»´Â °ÍÀº ¼­¹öÃø¿¡¼­ ´ã´çÇÕ´Ï´Ù. ÀÌ °æ¿ì ¼­¹ö´Â ÃÖÃʷΠŬ¶óÀÌ¾ðÆ®¿¡ º¸³»Áø ÆäÀÌÁö À̿ܿ¡ presentation¿¡ ´ëÇÑ Á¤º¸¸¦ °¡Áú¼ö ¾ø½À´Ï´Ù.

    AJAX ¾ÖÇø®ÄÉÀÌ¼Ç Àüü°¡ ÇÑ ÆäÀÌÁö ¾È¿¡ ÀÛ¼ºµÈ ÄÉÀ̽º°¡ ÀÖ½À´Ï´Ù. ¸¸¾à ÀÌ·± ¾ÆÅ°ÅØÃĸ¦ ÅÃÇÑ´Ù¸é, ³×ºñ°ÔÀ̼ǰú Áñ°Üã±â Ãß°¡ÀÇ Ã³¸® ¹®Á¦¸¦ °í·ÁÇØ¾ß ÇÕ´Ï´Ù.

¿Ï¼º ¸ñÀû¿¡ µû¶ó µÎ °¡Áö ¹æ¹ýÀ» ÀÚÀ¯·Ó°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. °³ÀÎÀûÀ¸·Î´Â Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö¿¡ Á¦¾î±ÇÀ» ³ª´©¾î ÁÖ´Â ¹æ¹ýÀ» ¼±È£ÇÕ´Ï´Ù.

AJAX¿Í °ü·ÃµÈ º¸¾È À̽´´Â ¹«¾ùÀԴϱî?

ÀÚ¹Ù ½ºÅ©¸³Æ®´Â »ç¿ëÀÚ°¡ ÆäÀÌÁöÀÇ ¼Ò½º º¸±â¸¦ ¼±ÅÃÇÏ´Â °æ¿ì ¹Ô¹ÔÇÏ°Ô º¸ÀÔ´Ï´Ù. ÀÚ¹Ù ½ºÅ©¸³Æ®´Â »ç¿ëÀÚÀÇ Çã°¡°¡ ¾øÀÌ´Â ·ÎÄà ÆÄÀϽýºÅÛ¿¡ Á¢±ÙÇÒ ¼ö ¾ø½À´Ï´Ù. AJAX ÀÎÅÍ·¢¼ÇÀº ÇØ´ç ÆäÀÌÁö°¡ ·ÎµùµÇ´Â ¼­¹öÃø ÄÄÆ÷³ÍÆ®¿¡¸¸ °ü·ÃÀÌ ÀÖ½À´Ï´Ù. ¿ÜºÎ ¼­ºñ½º¿¡¼­´Â AJAX ÀÎÅÍ·¢¼Ç¿¡ ÇÁ·Ï½Ã ÆÐÅÏÀÌ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.

¸¸¾à ¾ÇÀǸ¦ °¡Áø »ç¿ëÀÚ°¡ ´ç½ÅÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀ» Àüº¹½ÃŰ·Á´Â Àǵµ·Î Á¢±ÙÇÒ ¶§ ¼­¹öÃø ÄÄÆ÷³ÍÆ®°¡ À§Çè¿¡ óÇÏ°Ô µÉ ¼ö ÀÖÀ¸¹Ç·Î ¾ÖÇø®ÄÉÀÌ¼Ç ¸ðµ¨À» ³ëÃâ½ÃŰÁö ¾Êµµ·Ï Á¶½ÉÇϽʽÿÀ. ¸ðµç ´Ù¸¥ À¥¾ÖÇø®ÄÉÀ̼ǿ¡´Â, ºñ¹Ð Á¤º¸°¡ ±³È¯µÉ ¶§ ¿¬°áÀÇ º¸¾ÈÀ» È®½ÇÈ÷ Çϱâ À§ÇØ HTTPSÀÇ »ç¿ëÀ» °í·ÁÇØ º¼ ¼ö ÀÖ½À´Ï´Ù.

Synchronous¿Í asynchronous request¸¦ °¢°¢ ¾î¶² ¶§ »ç¿ëÇϳª¿ä?

ÁÁÀº Áú¹®ÀÔ´Ï´Ù. ¾Æ¹« ÀÌÀ¯¾øÀÌ AJAX¸¦ È£ÃâÇÏÁö ¾Ê½À´Ï´Ù! µ¿±â(synchronous) ¿äûÀº ÆäÀÌÁö À̺¥Æ® ÇÁ·Î¼¼½ÌÀ» Â÷´ÜÇÒ °ÍÀ̸ç, ºñµ¿±â (asynchronous) ¿äûÀÌ ¼±È£µÇ´Â °æ¿ì´Â º°·Î º» ÀûÀÌ ¾ø½À´Ï´Ù.

¾ÖÇø´°ú Ç÷¯±×ÀÎÀº ¾î¶»½À´Ï±î?

¾ÖÇø®ÄÉÀ̼ǿ¡¼­ Ç÷¯±×ÀÎÀ̳ª ¾ÖÇø´¿¡ ±â¹ÝÇÑ ºÎºÐµéÀ» ¹Ù·Î ¹ö¸®Áö ¸¶½Ê½Ã¿À. AJAX¿Í DHTMLÀÌ µå·¡±× ¾Ø µå¶ø°ú °°Àº »óÀ§ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽ºµéÀ» Áö¿øÇÏ´Â ¹Ý¸é, ¿©ÀüÈ÷ ÇѰ谡 ÀÖÀ¸¸ç, ƯÈ÷ ºê¶ó¿ìÀú Áö¿ø¿¡ À־ ±×·¸½À´Ï´Ù. Ç÷α×Àΰú ¾ÖÇø´Àº ¼ö³â°£ AJAX¿Í ºñ½ÁÇÑ ¿äûÀ» »ý¼ºÇϴµ¥ ÀÌ¿ëµÇ¾î ¿Ô½À´Ï´Ù. ¾ÖÇø´Àº °³¹ßÇÏ´Â µ¥ ÇÊ¿äÇÑ °ÅÀÇ ¸ðµç °ÍÀ» Á¦°øÇÏ´Â UI ÄÄÆ÷³ÍÆ®¿Í API¸¦ ´Ù¼ö Á¦°øÇÕ´Ï´Ù.

¸¹Àº »ç¶÷µéÀÌ Ç÷¯±×ÀÎÀ» ÃʱâÈ­ÇÒ ¶§ ±â´Ù·Á¾ß Çϸç ÇÊ¿äÇÑ ¹öÀüÀÇ JVM Ç÷¯±×ÀÎÀÌ ±ò·Á ÀÖÀ»Áö ¾øÀ»Áö ¸ð¸¥´Ù´Â ÀÌÀ¯·Î ¾ÖÇø´À̳ª Ç÷α×ÀÎÀ» °æ½ÃÇÕ´Ï´Ù. Ç÷¯±×ÀÎÀ̳ª ¾ÖÇø´ÀÌ ÆäÀÌÁö DOMÀ» Á¶ÀÛÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÒÁö ¸ð¸¨´Ï´Ù. ±×·¯³ª ±ÕÀÏÇÑ È¯°æ¿¡ Àְųª ƯÁ¤ JVMÀ̳ª Ç÷¯±×ÀÎÀÌ »ç¿ë °¡´ÉÇÑ È¯°æ (¿¹¸¦ µé¾î ±â¾÷ ȯ°æ)¿¡¼­ Ç÷α×ÀÎÀ̳ª ¾ÖÇø´Àº À¯¿ëÇÏ°Ô »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.

ÇѰ¡Áö °í·ÁÇØ¾ß ÇÒ °ÍÀº, AJAX¿Í ¾ÖÇø´°ú Ç÷¯±×ÀÎÀÌ È¥ÀçµÇ¾î ÀÖ´Â °æ¿ìÀÔ´Ï´Ù. Flickr ´Â »ç¿ëÀÚ °æÇèÀ» À§ÇØ ±×¸²¿¡ ¶óº§À» ºÙÀ̰í À¯Àú ÀÎÅÍ·¢¼Ç, »çÁø ¼öÁ¤ µî¿¡ AJAX ÀÎÅÍ·¢¼Ç°ú DHTMLÀ» Á¶ÇÕÇÏ¿© »ç¿ëÇÕ´Ï´Ù. ¼­¹öÃø ÄÄÆ÷³ÍÆ®¸¦ Àß ¼³°èÇÑ´Ù¸é µÎ Å¬¶óÀÌ¾ðÆ® ¸ðµÎ¿Í Ä¿¹Â´ÏÄÉÀ̼ÇÀÌ °¡´ÉÇÕ´Ï´Ù.

'µÚ·Î'¿Í '¾ÕÀ¸·Î' ¹öưÀ» ¾î¶»°Ô ó¸®Çϳª¿ä?

¾ÖÇø®ÄÉÀ̼ÇÀÇ ÇöÀç »óŸ¦ ÃßÀûÇÒ ¼ö ÀÖ´Â °íÀ¯ÀÇ ¼Ö·ç¼ÇÀ» ¸¸µé ¼öµµ ÀÖÁö¸¸, Àü¹®°¡µé¿¡°Ô ÀÌ ¹®Á¦¸¦ ³Ñ±â´Â °ÍÀÌ ÁÁÀ» °ÍÀ̶ó°í »ý°¢ÇÕ´Ï´Ù.Dojo´Â ¹ØÀÇ ÀÚ¹Ù ½ºÅ©¸³Æ® ¿¹Á¦¿¡¼­ º¸ÀÌ´Â °Íó·³ ºê¶ó¿ìÀú ¾È¿¡¼­ÀÇ ³×ºñ°ÔÀ̼ÇÀ» Á߸³ÀûÀ¸·Î ¾îµå·¹½ºÇÕ´Ï´Ù.

function updateOnServer(oldId, oldValue, itemId, itemValue) {
    var bindArgs = {
        url:  "faces/ajax-dlabel-update",
        method: "post",
        content: {"component-id": itemId, "component-value": itemValue},
        mimetype: "text/xml",
	    load: function(type, data) {
               processUpdateResponse(data);
             },
        backButton: function() {
               alert("old itemid was " + oldId);
			},
        forwardButton: function(){
               alert("forward we must go!");
            }
     };
    dojo.io.bind(bindArgs);
}

ÀÌ ¿¹´Â ¼­¹ö »óÀÇ °ªÀ» ÇÔ¼ö¿Í ÇÔ²² dojo.io.bind()¸¦ »ç¿ëÇÏ¿© ¾÷µ¥ÀÌÆ®ÇÕ´Ï´Ù. dojo.io.bind()´Â ºê¶ó¿ìÀúÀÇ 'µÚ·Î' ¹öư À̺¥Æ®¸¦ ´ã´çÇÏ´Â °íÀ¯ÇÑ ¼Ó¼ºÀ¸·Î »ç¿ëµË´Ï´Ù. °³¹ßÀÚ¶ó¸é oldValue¿¡ °ªÀ» ÀçÀúÀåÇϰųª ¹º°¡ ´Ù¸¥ Àû´çÇÑ ¾×¼ÇÀ» ÃëÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ÇÏ´ÜÀÇ ¸µÅ©´Â ¾î¶»°Ô Dojo°¡, °³¹ßÀÚ°¡ ºê¶ó¿ìÀúÀÇ ¹öư À̺¥Æ®¸¦ °¨ÁöÇÏÁö ¸øÇÏ°Ô ÇÏ´ÂÁö¿¡ ´ëÇÑ ¼³¸íÀÔ´Ï´Ù.

AJAX: How to Handle Bookmarks and Back Buttons ÀÌ ¹®Á¦¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀÌ ´ã°Ü ÀÖÀ¸¸ç, 'µÚ·Î'¿Í '¾ÕÀ¸·Î' ¹®Á¦¿¡ ´ëÇØ¼­¸¸ ³íÀÇÇÏ´Â ÀÚ¹Ù ½ºÅ©¸³Æ® library Really simple History framework(RSH)¸¦ Á¦°øÇÕ´Ï´Ù.

AJAX¸¦ »ç¿ëÇÏ¿© À̹ÌÁö¸¦ Àü¼ÛÇÏ´Â ¹æ¹ýÀº ¹«¾ùÀΰ¡¿ä?

Google maps¿Í °°Àº ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î AJAX¸¦ »ç¿ëÇϸé À̹ÌÁö°¡ º¸³»Áö´Â °Íó·³ º¸ÀÏ ¼ö ÀÖÀ¸³ª, »ç½ÇÀº À̹ÌÁöÀÇ URLµéÀÌ AJAX ¿äû¿¡ ´ëÇÑ ¹ÝÀÀÀÌ º¸³»Áö°í DHTMLÀ» »ç¿ëÇÏ¿© ±× URLµéÀÌ º¸³»Áö°í ÀÖ´Â °ÍÀÔ´Ï´Ù.

ÇÏ´ÜÀº XML ¹®¼­°¡ AJAX ÀÎÅÍ·¢¼ÇÀ¸·ÎºÎÅÍ ¸®Åϵǰí Ä«Å×°í¸® ¹Ù°¡ »ðÀÔµÈ ¿¹ÀÔ´Ï´Ù.

<categories>
<category>
  <cat-id>1</cat-id>

  <name>Books</name>
  <description>Fun to read</description>
  <image-url>books_icon.gif</image-url>
 </category>

<category>
  <cat-id>2</cat-id>
  <name>Electronics</name>
  <description>Must have gadgets</description>

  <image-url>electronics.gif</image-url>
 </category>
</categories>

image-url ¿ä¼Ò°¡ Ä«Å×°í¸®¸¦ ´ëÇ¥ÇÏ´Â À̹ÌÁö URLÀÇ À§Ä¡¸¦ ´ã°í ÀÖÀ½¿¡ ÁÖ¸ñÇϽñ⠹ٶø´Ï´Ù. AJAX ÀÎÅÍ·¢¼ÇÀÇ callback ¸Þ¼Òµå´Â response XML ¹®¼­¸¦ ÆÄ½ÌÇÒ °ÍÀ̸ç, response XML ¹®¼­ ¾È¿¡ Æ÷ÇÔµÈ °¢°¢ÀÇ Ä«Å×°í¸® addCategory ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. ÀÌ addCategory ÇÔ¼ö´Â ÆäÀÌÁöÀÇ body¾È¿¡ ÀÖ´Â table row elementÀÎ "category table"À» ¿Ã·Á´Ùº¸¸ç À̹ÌÁö¸¦ Æ÷ÇÔÇÏ´Â ¿ä¼Ò¿¡ ÇÑ row¸¦ Ãß°¡ÇÕ´Ï´Ù.

<scrip type="text/ÀÚ¹Ù ½ºÅ©¸³Æ®" >

...

function addCategory(id, name, imageSrc) {

    var categoryTable = document.getElementById("categoryTable");
    var row = document.createElement("tr");
    var catCell = document.createElement("td");
    var img = document.createElement("img");
    img.src = ("images\\" + imageSrc);
    var link = document.createElement("a");
    link.className ="category";
    link.appendChild(document.createTextNode(name));
    link.setAttribute("onclick", "catalog?command=category&catid=" + id);
    catCell.appendChild(img);
    catCell.appendChild(link);
    row.appendChild(catCell);
    categoryTable.appendChild(row);
}

</script>

...

<table>
 <tr>
  <td width="300" bgoclor="lightGray">
    <table id="categoryTable" border="0" cellpadding="0"></table>

  </td>
  <td id="body" width="100%">Body Here</td>
 </tr>
</table>

À̹ÌÁöÀÇ Ãâó´Â À̹ÌÁö ¼Ò½º·Î ¼³Á¤µÇ¾î ÀÖÀ½À» À¯ÀÇÇϼ¼¿ä. ÀÌ À̹ÌÁö´Â À̹ÌÁö ¿ä¼Ò°¡ categoryTable¿¡ Ãß°¡µÇ¾úÀ» ¶§ images/books_icon.gif" À̳ª "images/electronic_icon.gif"À̶ó´Â URLÀÇ HTTP ¿äû¿¡ ÀÇÇØ ·ÎµùµË´Ï´Ù.

AJAX Æú¸µ(polling)À» Çϱâ À§ÇÑ ¾²·¹µå¸¦ ¾î¶»°Ô »ý¼ºÇϳª¿ä?

ÀÚ¹Ù ½ºÅ©¸³Æ®´Â ¾²·¹µå°¡ ¾ø½À´Ï´Ù. ÀÚ¹Ù ½ºÅ©¸³Æ®ÀÇ ÇÔ¼öµéÀº ÆäÀÌÁö°¡ ·ÎµùµÇ°Å³ª, ¸¶¿ì½º Ŭ¸¯ÀÌ Àְųª, ¾î¶² form ¿ä¼Ò¿¡ Ç¥½Ã¸¦ ÇÒ ¶§ µîÀÇ À̺¥Æ®°¡ ¹ß»ýÇÒ ¶§ È£ÃâµË´Ï´Ù. ÇÔ¼öÀÇ À̸§°ú ½Ã°£(¹Ð¸®¼¼ÄÁ ´ÜÀ§)¸¦ Àμö·Î »ç¿ëÇÏ´Â setTimeout ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ŸÀ̸Ӹ¦ ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ±×·± ´ÙÀ½, °°Àº ÇÔ¼ö¸¦ ÇÏ´ÜÀÇ ÀÚ¹Ù ½ºÅ©¸³Æ® ¿¹Á¦Ã³·³ È£ÃâÇÔÀ¸·Î½á ·çÇÁ¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

function checkForMessage() {
  // start AJAX ÀÎÅÍ·¢¼Ç with processCallback as the callback function
}

// callback for the request
function processCallback() {
    
    // do post processing
    
    setTimeout("checkForMessage()", 10000);
}

checkForMessage´Â ¹«±âÇÑÀ¸·Î ·çÇÁ¸¦ µ¹¸°´Ù´Â Á¡À» ÁÖÀÇÇϽñ⠹ٶø´Ï´Ù. ÆäÀÌÁöÀÇ Æ¯¼º¿¡ µû¶ó °£°ÝÀÇ ÀÎÅ©·¹¸ÕÆ®¸¦ ¹Ù²Ü ¼öµµ ÀÖ½À´Ï´Ù. ¶ÇÇÑ Æ¯Á¤ AJAX ¹ÝÀÀ ÇÁ·Î¼¼½Ì Á¶°Ç¿¡ µû¶ó ·çÇÁ°¡ Á¤ÁöµÇ´Â ·ÎÁ÷À» Ãß°¡ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

[spacer]
 
¹®ÀÇ  |  ÇÑ±Û µ¥ÀÌŸ½ÃÆ® |  ä¿ë&HR |  °³ÀÎÁ¤º¸º¸È£Á¤Ã¥ |  »ç¿ë¾à°ü |  µî·Ï»óÇ¥ |  Çǵå¹é |  Copyright 1994-2007 Sun Microsystems, Inc.