먼저 Ajax는, 자바스크립트 Prototype 라이브러리의 대표적인 기능 중 하나로서, 웹페이지를 다시 로드(reload)하지 않고도 새로운 컨텐츠를 읽어올 수 있다는 데에 그 의의가 있습니다.

오늘 한 삽질의 성과 겸, Ajax 명령어를 사용법도 정리해 볼 겸 해서 한번 사용법에 대하여 언급해 보도록 하겠습니다.

먼저 Ajax를 사용하기 전에
<script src="prototype.js"></script>

로 prototype.js를 로드해 주시는 것은 기본!







Ajax 명령어는 다음과 같이 사용할 수 있습니다 :
new Ajax.Request(str_url,
          {
              method : 'get',
              parameters : {'항목명' : '', ... },
              onLoad : function() { ... },
              onSuccess  : function(returnValue) { ... },
              onFailure  : function() { ... }
          });


- method : Ajax.Request를 처리하는 방법을 지정합니다. GET과 POST 방법이 있는데, 이것이 의미하는 바는 여기를 참조해 주세요.
- parameters : 보낼 파라미터에 대한 값 설정입니다. 예를 하나 들자면, url을 test.php로 하고 파라미터 값을 {'test', '1'}로 놓으면 주소창에 test.php?test=1이라는 결과와 같게 되지요 :)
- onLoading : url로부터 값을 로딩하고 있을때 발생하는 이벤트입니다.
- onSuccess : url로부터 성공적으로 로딩하였을때 발생하는 이벤트입니다.
- onFailure : url로부터 로딩에 실패하였을때 발생하는 이벤트입니다.
- onComplete : [언급하진 않았지만] url 로딩과 상관없이 작업 완료 후 발생하는 이벤트입니다.


onSuccess에서는 변수로 주어지는 returnValue에서 결과값을 얻어올 수 있습니다.
onSuccess : function(returnValue) { alert(returnValue.responseText); }

또 이렇게 응용하면 XML을 파싱하는 RSS리더로도 응용이 가능합니다.
var xml = new rssParser(request.responseXML);

다른 분이 만드신 샘플도 있더라고요.



물론, 이벤트 메서드에 이와 같이 사용자 정의 함수를 설정해 줄 수도 있습니다.
... onLoad : func_whileLoad() ...

function func_whileLoad()
{ ... }





*종종 파이어폭스 등에서 url값에 url을 넣었지만 스크립트 에러도 없고 아무런 반응이 없는 경우가 있는데, 이 때는 혹시 자신이 입력한 URL이 타 도메인(Cross Domain)이 아닌지 확인해 주세요. 이번에 패치가 되면서 타 도메인에서의 Ajax.Request호출이 금지되었다고 합니다. 해결방법이 없는 건 아니지만, 아무래도 사용하기가 까다로워 진 건 사실입니다 -_-;..
구글에서 Cross Domain AJAX를 검색해 보시면 더 많은 방법들을 찾으실 수 있습니다.

댓글을 달아 주세요

  1. BlogIcon 뒤파ㅇ;러 2009/01/18 12:59
     addr - mod/del - rep

    ㄷㄷㄷㄷ

  2. BlogIcon ㅠㅠ 2009/01/18 13:00
     addr - mod/del - rep

    이렇게 어려운거는 몬함 ㅠㅠ

    [몰컴]

  3. BlogIcon 청초 2009/01/18 13:34
     addr - mod/del - rep

    쿠나님은 엘리트 출신?

    아니면 컴퓨터 손질 잘하시는 동네 아저씨?

  4. BlogIcon 影猫 2009/01/19 12:40
     addr - mod/del - rep

    무슨 말인지 모르겠습니..ㅠ.ㅠ

    • BlogIcon 쿠나 2009/01/19 15:59
       addr - mod/del - rep

      모르시는게 맞을 겁니다.. 저도 아직 어려운 부분입.. [퍽!]

  5. 2009/07/03 16:01
     addr - mod/del - rep

    비밀댓글입니다

< 1 ... 473 474 475 476 477 478 479 480 481 ... 832 > Top