ajax의 모든것 ( jquery를 이용한 ajax 사용 ) :: 소림사의 홍반장!

Ajax

 Ajax(Asynchronous Javascript and XML , 에이잭스)는 대화식 웹 애플리케이션의 제작을 위해 이용하는 웹 개발 기법.


장점

  • 페이지 이동없이 고속으로 화면을 전환할 수 있다.
  • 서버 처리를 기다리지 않고, 비동기 요청이 가능하다.
  • 수신하는 데이터 양을 줄일 수 있고, 클라이언트에게 처리를 위임할 수도 있다.

단점

  • Ajax를 쓸 수 없는 브라우저에 대한 문제가 있다.
  • Http클라이언트의 기능이 한정되어 있다.
  • 페이지 이동없는 통신으로 인한 보안상의 문제
  • 지원하는 Charset이 한정되어 있다.
  • 스크립트로 작성되므로 Debugging이 용이하지 않다.
  • 요청을 남발하면 역으로 서버 부하가 늘 수 있음.
  • 동일-출처 정책으로 인해 다른 도메인과는 통신이 불가능하다.

 < 참고 >



1. jquery Ajax 기본 메서드

$.ajax( url [, settings ] );





2. jquery Ajax 부가 메서드

1) $.get(url [,data][,success][,dataType])               get 방식으로 ajax 를 수행함

2) $.post(url [,data][,success][,dataType])             post 방식으로 ajax 를 수행함

3) $.getJSON(url [,data][,success])                       get 방식으로 ajax 를 수행하여 json 데이터를                                                                         가져옴 (jsonp 사용가능)

4) $.getScript(url [,success])                                get 방식으로 ajax 를 수행하여 javascript                                                                         데이터를 가져옴

5) $(selector).load(url [,data][,complete])               ajax를 수행한 후에 선택자로 선택한 문서 

객체 안에 응답 데이터를 넣음




3. jquery Ajax 보조 메서드

1) $.param( obj )                        객체의 내용을 요청 매개 변수 문자열로 만듬


2) .serialize()                            입력 양식의 내용을 요청 매개 변수 문자열로 만듬


3) .serializeArray()                            입력 양식의 내용을 객체로 만듬




4. jquery Ajax 이벤트 연결 메서드

  - spinner 구현 등에 사용 ( 아래 순서대로 이벤트 실행 )

  - 만약 $.ajax() 나 $.ajaxSetup() 의 global 옵션값이 false 이면 이벤트 핸들러는 작동하지 않음

1) .ajaxStart( handler )                        ajax 요청을 시작할 때 실행

2) .ajaxSend( handler )                       ajax 요청을 보낼 때 실행

3) .ajaxSuccess( handler )                  ajax 요청이 성공할 때 실행

4) .ajaxError( handler )                        ajax 요청이 실패할 때 실행

5) .ajaxComplete( handler )                  ajax 요청이 완료될 때 실행

6) .ajaxStop( handler )                        ajax 요청을 중지할 때 실행




○ Ajax 를 동기방식(순차적 프로세스)으로 사용하기
  : 기본적으로 비동기로 데이터를 처리하기 위해 쓰는 ajax 이지만 가끔 순차적으로 프로세스가 진행되어야 할 경우가 있음.
    가끔 코드 보다보면 setTimeout 함수를 써서 일부러 다음 프로세스를 지연시켜 실행하는 경우도 발견함.

    이런 경우 간단하게 속성에서 async:false (비동기:해제) 를 추가하자.

    요로코롬...

$.ajax({
               type: 'POST',
               url: 'test/test.jsp',
               data: dataParam,

                   async: false,
                   success: function(data) {
                    if(data != null) {
                         
                    }
               }
          });




<참고>
한국어 위키백과 : http://ko.wikipedia.org
jquery api 참고 : http://api.jquery.com/
모던 웹을 위한 Javascript jQuery 입문 (윤인성 지음)


다른 카테고리의 글 목록

Dev. 웹/JavaScript 카테고리의 포스트를 톺아봅니다