1. Ajax란?
- 비 동기식 방식으로 웹서버의 응답을 기다리지 않고 데이터를 빠르게 처리하는 개발 기법
- 기존 방식은 웹서버의 응답으로 페이지의 깜빡임(새로고침)이 있고 난 뒤 데이터가 처리 됐지만 Ajax는 페이지 리로딩 없이 데이터를 처리
- 대표적 기능으로 네이버나 구글의 실시간 검색이나 검색어 자동완성 등이 있습니다.
단점
- 페이지의 리로딩이 없기 때문에 한페이지에서 지속적으로 사용시 리소스가 계속 쌓여 페이지가 느려짐
- 스크립트로 되어 있기 때문에 에러 발생 시 디버깅에 어려움이 있습니다.
2. 예제
우선 Ajax를 사용하기 위해서는 jquery가 필요합니다. 다음과 같이 jquery 에서 직접 제공하는 주소를 사용하거나 js파일을 구하셔서 import 해야 합니다.
화면단
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <html> <head> <title>Home</title> <script type= "text/javascript" > function AjaxEx(){ var name = "name=" +document.check.name.value; $.ajax({ url : "/check" , type : "post" , data : name, dataType : "json" , success : function (data) { document.getElementById( "result" ).innerHTML = data+ "님 반갑습니다." ; }, error : function (request) { alert( "실패" ); } }); } </script> </head> |
1 2 3 4 5 6 7 8 9 10 11 | < body > < h3 >Ajax 예제 입니다..</ h3 > < form action = "" name = "check" method = "post" > < input type = "text" id = "name" > < input type = "button" value = "클릭" onclick = "AjaxEx()" > < div id = "result" ></ div > </ form > </ body > </ html > |
JAVA단
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | @RequestMapping (value = "/check" , method = RequestMethod.POST) public void check(HttpServletRequest request, HttpServletResponse resp) throws Exception { String name = request.getParameter( "name" ); JSONObject obj = new JSONObject(); JSONArray ja = new JSONArray(); ja.add(name); PrintWriter out = resp.getWriter(); out.print(ja.toString()); } |
스프링 기본 기본 프로젝트를 생성하신 후 실행 시키면 나오는 Home 화면에 다음과 같이 JSP단을 작성해 줍니다.
그리고 텍스트박스에 이름을 넣으시고 클릭 버튼을 누르면 스크립트 펑션을 타고 Ajax를 수행하고 결과를 리턴해 줍니다.
또한 Ajax특성상 컨트롤러(JAVA단)을 거쳐오고도 페이지 리로딩 없이 결과를 화면에 뿌려줍니다.
'개발 하자 빵찌니 > AJAX' 카테고리의 다른 글
[Ajax] slideDown(), 슬라이드 효과로 보이기 (0) | 2018.02.22 |
---|---|
[Ajax] slideUp(), 슬라이드 효과로 숨기기 (0) | 2018.02.22 |
[Ajax] 레이어 팝업 (0) | 2018.02.22 |