본문 바로가기

Language/JavaScript(ES6)

[Javascript]Ajax

Asynchronous JavaScript and XML 비동기적 자바스크립트


비동기적 - 따로따로 일한다?


웹 페이지에 필요할 때만 로드 되는 부분들을 그냥 두었다가


로드가 필요할 때 불러낼 수 있게 하여


문서를 불러올 때의 부담을 줄여줌.



위의 코드는 사용 예시이다.


변수xhr httprequest객체를 넣고


그 객체를 open메소드를 이용해서 여는데 첫번 째 파라미터는 방식 두번째 파라미터는 여는 대상이다.


이는 각각 form의 method와 action과 같은 역할을 한다.


그러고 나면 


onreadystatechange를 이용하여 함수를 열고


readyState === 4(준비를 완료했는가?) 와 xhr.status ===200(성공적으로 수행했는가?,  실패는 404)가 만족하면


xhr객체의 내용을(여기서는 php파일로 시간이다) #time의 innnerhtml을 출력하게 된다.



결과적으로


네트워크 상에 

버튼을 누를 때 마다

서버에 php파일을 불러오게 된다.



조금 복잡한 예시이다.

select 태그는 자식 태그로 option을 받는데, 이는 우리가 마우스로 선택할 수 있는 창을 만든다.


스크립트로 내려가게 되면 버튼이 클릭 될 때 이벤트가 발생되는데


HttpRequest를 위한 객체가 생성되고


그 객체를 POST방식으로 열게 된다.

그 객체가 준비가 되었을때 함수가 발생하고 그 기능은

#time에 xhr객체의 텍스트를 응답하는 것이다.


그리고 그 아래

data라는 객체를 생성했는데

이는 옵션에서 어떤 값을 리턴할 지에 대한 선택을 나타낸다.

위의 코드를 통해 리턴된 data값은


timezone=Asia/Seoul&format=Y-m-d

인데

&를 통해 두 값을 구분한다는 것을 알고 있으면 좋겠다.


여튼 그 값들을 xhr객체에 보낸다.


xhr.setRequestHeader같은 경우에는 파라미터값을 그냥 저런식으로 하는 거라고 한다.




위 코드는 ./php2. php

'Language > JavaScript(ES6)' 카테고리의 다른 글

[JavaScript] JSON(2)  (0) 2018.09.08
[JavaScript] JSON(1)  (0) 2018.09.08
[Javascript] 마우스 이벤트  (0) 2018.09.08
[Javascript]문서 로딩  (0) 2018.09.08
[Javascript] Form  (0) 2018.09.08