Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

Similar documents
Microsoft PowerPoint - web-part01-ch10-문서객체모델.pptx

Microsoft PowerPoint - web-part02-ch15-문서객체조작.pptx

Microsoft PowerPoint - web-part03-ch19-node.js기본.pptx

PowerPoint 프레젠테이션

3장

Microsoft PowerPoint - web-part01-ch09-브라우저객체모델.pptx

PowerPoint Template

C H A P T E R 2

Microsoft PowerPoint - web-part02-ch16-이벤트.pptx

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

Microsoft PowerPoint - web-part01-ch05-함수.pptx

Microsoft PowerPoint - web-part02-ch13-기본.pptx

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

Microsoft PowerPoint - Ajax

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

jQuery.docx

Microsoft PowerPoint - C++ 5 .pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint 세션.ppt

Javascript

2파트-07

PowerPoint 프레젠테이션

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

PowerPoint Presentation

1-90

Microsoft PowerPoint 자바스크립트(1).pptx

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

0. 들어가기 전

JAVA PROGRAMMING 실습 05. 객체의 활용

UI TASK & KEY EVENT

PowerPoint 프레젠테이션

PowerPoint Presentation

Microsoft Word - src.doc

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

<C3CA3520B0FAC7D0B1B3BBE7BFEB202E687770>

Microsoft PowerPoint - chap06-2pointer.ppt

게시판 스팸 실시간 차단 시스템

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - web-part01-ch08-기본내장객체.pptx

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

jquery 를이용하여웹위젯 (Web Widget) 을만드는방법 원제 : How to build a web widget (using jquery) Published on 15

£01¦4Àå-2

PART

Part Part

½ºÅ丮ÅÚ¸µ3_³»Áö

272*406OSAKAÃÖÁ¾-¼öÁ¤b64ٽÚ

- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas

HTML5

쉽게 풀어쓴 C 프로그래밍

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Microsoft PowerPoint - Chap12-OOP.ppt

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

17장 클래스와 메소드

Microsoft PowerPoint 웹 연동 기술.pptx

Windows 8에서 BioStar 1 설치하기

슬라이드 1

어댑터뷰

The Pocket Guide to TCP/IP Sockets: C Version

SproutCore에 홀딱 반했습니다.

UNIST_교원 홈페이지 관리자_Manual_V1.0

HTML5 웹프로그래밍 입문-개정판

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - aj-lecture1-HTML-CSS-JS.ppt [호환 모드]

- 이벤트의처리 <input type= button id= button1 value= 확인 /> <input type= button id= button2 value= 확인 /> 자바스크립트인경우 : document.getelementbyid( button1 ).oncl

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Prototype에서 jQuery로 옮겨타기

중간고사

*2008년1월호진짜

놀이동산미아찾기시스템

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - hci2-lecture12 [호환 모드]

Frama-C/JESSIS 사용법 소개

슬라이드 1

API 레퍼런스가이드 Web Driver Rev

HTML5 웹프로그래밍 입문-개정판

슬라이드 1

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Spring Data JPA Many To Many 양방향 관계 예제

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES HTML 연동가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax Co

BEA_WebLogic.hwp

Ext JS À¥¾ÖÇø®ÄÉÀ̼ǰ³¹ß-³¹Àå.PDF

2장 변수와 프로시저 작성하기

TTA Journal No.157_서체변경.indd

PowerPoint 프레젠테이션

Javascript.pages

Javascript

풍문으로들었소팀보고서 hkpco, hellsonic, lokihardt, gogil 페이지 1 / 16

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

HTML5

PowerPoint 프레젠테이션

목차 1. 매뉴얼안내 Web Driver 개요 특징 용어 지원 O/S & 웹브라우저 Windows 웹브라우저 지원프린터모델 Labe

adfasdfasfdasfasfadf

ibmdw_rest_v1.0.ppt

Secure Programming Lecture1 : Introduction

Transcription:

과목명 : 웹프로그래밍응용교재 : 모던웹을위한 JavaScript Jquery 입문, 한빛미디어 Part3. Ajax Ch20. XMLHttpRequest 2014년 1학기 Professor Seung-Hoon Choi

20 XMLHttpRequest XMLHttpRequest 객체 자바스크립트로 Ajax를이용할때사용하는객체 간단하게 xhr 이라고도부름 서버 19장에서만든서버를이용함 Server.js 서버실행 c:\> node server.js

20.1 XMLHttpRequest 객체 XMLHttpRequest 객체는빈편지지와같다. 배송방식, 수취인등을지정한후, (open 메소드이용 ) 내용물을넣고편지를보낸다. (send 메소드이용 ) 답장이오면 (onreadystatechange 이벤트핸들러이용 ) 답장을확인하고처리한다. (responsetext 속성이용 ) XMLHttpRequest 객체의전송준비메소드 open( 전송방식, 서버경로, 비동기사용여부 ) 전송방식 : GET 또는 POST와같은전송방식을의미함 서버경로 : 요청을수행할위치를지정함 비동기사용여부 : 서버에요청시비동기적으로요청할지를결정함

20.1 XMLHttpRequest 객체 클라이언트 public 폴더에 20-4.html 작성 코드 20-1, 20-2, 20-3, 20-4 XMLHttpRequest( ) 객체 request를생성하고, open( ) 메소드로전송을준비한후 send( ) 메소드로요청을보낸다. 응답은 responsetext 속성을이용한다. 클라이언트실행 웹브라우저에서 http://127.0.0.1:52273/20-4.html 요소검사로확인하면, 127.0.0.1 요청후 data.html로요청이전송된것을확인할수있다.

20.1 XMLHttpRequest 객체 코드 20-5 request.responsetext 를 document.body.innerhtml 에할당

20.2 생성 인터넷익스플로러 6 이하에서는 20.1 절의 XMLHttpRequest 객체를지원하지않음. ActiveX 기술을이용하면지원가능함 new ActiveXObject( Msxml2.XMLHTTP)

20.3 동기방식과비동기방식 동기방식 편지를우체통에넣고, 답장이올때까지우체통앞에서기다리는방식 비동기방식 편지를우체통에넣고, 답장이올때까지다른일을하는방식 코드 20-11 send( ) 메소드에소비되는시간측정 open( ) 메소드의세번째인자이용해서동기 / 비동기설정함

20.3 동기방식과비동기방식 데이터응답이오면 onreadystatechange 이벤트가발생한다. 사실은, XMLHttpRequest 객체의상태가변경될때마다 readystate 속성의값이변경되고 이때마다 onreadystatechange 이벤트가발생한다. 코드 20-12 onreadystatechange 이벤트핸들러에서 readystate의값을계속해서 alert함

20.3 동기방식과비동기방식 표 20-1 readystate 속성의값 0 1 request 객체를만들었지만, 아직 open( ) 로초기화하지않았음 request 객체를만들고초기화했지만, send( ) 메소드를호출하지않았음 2 send( ) 메소드를사용했지만, 아직응답데이터를받지않았음 3 4 응답데이터의일부만을받았음 모든응답데이터를받았음

20.3 동기방식과비동기방식 따라서, onreadystatechange 이벤트핸들러안에서 readystate 속성의값이 4일때 응답데이터를처리해주면된다. 응답데이터가올바른데이터인지도검사해주어야한다. status 속성의값이 200 인지검사하면된다. 코드 20-13, 20-14 지금까지의응답데이터는, HTML 태그였다. 앞으로 JSON 이나 XML 문서를다루는방법을살펴본다.

20.4.1 JSON 요청과조작 응답받은 JSON 문자열을자바스크립트객체로변환 eval( ) 함수를이용함 eval( ) 함수의매개변수로넣을때괄호로둘러싸야함 코드 20-16 /data.json으로요청을보냄 응답데이터를 eval( ) 을이용하여객체로변환함 변환된객체는, 객체들을담고있는배열임 JSON.parse( ) 메소드를이용해도됨 var json = JSON.parse(request.responseText );

20.4.2 XML 요청과조작 응답받은 XML 문서를얻는방법 요청객체의 responsexml 속성이용 코드 20-17 alert(request.responsexml)

20.4.2 XML 요청과조작 XML 도문서객체모델과동일하므로 DOM 의속성과메소드를그대로이용할수있다. DOM 속성 nodevalue: 문서객체의내부글자를얻어옴 attribute: 문서객체의속성을얻어옴 DOM 메소드 getelementbyid(id): id 속성과일치하는문서객체를얻어옴 getelementsbytagname(name): 태그이름이일치하는문서객체들을배열로얻어옴 코드 20-18 var xml = request.responsexml var names = xml.getelementsbytagname( name )

20.4.2 XML 요청과조작 코드 20-19 var names = xml.getelementsbytagname('name'); var name = names[i].childnodes[0].nodevalue; XML to JSON 플러그인 XML 문서를 JSON 객체로변경해주는플러그인 http://thomasfrank.se/xml_to_json.html 에서 xml2json.js 를다운로드함 index.html과같은폴더에복사함 <script src= xml2json.js ></script> 추가 var json = xml2json.parser(request.responsetext); 실행 코드 20-20, 20-21

20.5 데이터요청방식 GET / POST / PUT / DELETE 요청방식 XMLHttpRequest 객체의 open( ) 호출시첫번째인자로구분함 코드 20-22 GET / POST / PUT / DELETE 요청을위한버튼추가

20.5.1 GET 요청 코드 20-23 request.open('get', '/products', false); 제품리스트를얻어옴 GET 요청캐싱 구버전의웹브라우저에서는 GET 요청을하면, 그결과를미리임시장소에복사해놓음 ( 캐싱 ) 같은형식으로 GET 요청이오면, 서버로요청이가지않고이전에캐싱해놓았던결과를그대로전달한다. 이를방지하기위해서는, GET 요청시현재시각을추가해서항상다른 GET 요청이가도록한다. 코드 20-24 request.open('get', '/products?dummy=' + new Date().getTime(), false);

20.5.2 POST 요청 코드 20-25 request.open('post', '/products', false); 제품을하나추가함 POST 요청시, 요청매개변수전달해야함 setrequestheader( ) 메소드이용해서 Content-type 속성을지정함 send( ) 메소드에매개변수를넣어서호출함 코드 20-26 request.setrequestheader('content-type', 'application/x-wwwform-urlencoded'); request.send('name=' + name + '&price=' + price);

20.5.3 PUT 요청 코드 20-27 request.open( PUT', '/products/0', false); 첫번째제품의속성값을수정함 PUT 요청시, 요청매개변수전달해야함 setrequestheader( ) 메소드이용해서 Content-type 속성을지정함 request.setrequestheader('content-type', 'application/x-wwwform-urlencoded'); send( ) 메소드에매개변수를넣어서호출함 request.send('name=' + name + '&price=' + price);

20.5.4 DELETE 요청 코드 20-28 request.open( DELETE', '/products/0', false); 첫번째제품을삭제함