/*-------Ajax 동기화 및 비동기화 차이점 페이지-------*/
@PostMapping("/ajaxok.do")
public String ajaxok(String mid,HttpServletResponse res) throws Exception{
PrintWriter pw = res.getWriter();
System.out.println(mid);
Thread.sleep(5000); //응답 대기시간을 설정할 수 있음
pw.write("ok");
pw.close();
return null; //PrintWriter 없으면 console에 404뜸
}
=> Thread로 5초뒤 실행함
비동기 : 저 텍스트가 먼저 뜨고 5초뒤 ok가 뜸
동기 : ok와 저 텍스트가 동시에 5초 후 들어옴
=> spring에서 ajax에서 전송 데이터 받을 경우 printWriter를 사용시 view를 생성할 필요 없음! (단, 미사용시 무조건 view페이지를 생성해야만 404에러를 방지할수 있음) printWriter이 없으면 " "여도 404 뜸 : ajaxok.do는 가상의 파일 (404안뜨려면 ajaxok.jsp를 무조건 만들어줘야함) printWriter로 값 찍어주면 return null이든 " "이든 안뜸!! : 값을 출력시켜줘서
🔽 🔽🔽🔽
동기false
call( this.response )이 와야 움직임
동기화 작업시 Backend와 시간간격을 체크하여 작업을 선행해야함
페이지 자체가 로드가 걸려버림 => animation 사용 불가
비동기true
call이 오든 안오든 일단 쏨
( data가 많아질 경우 data가 도착하지도 않았는데 출력해버리기 때문에 요상한 일이 발생할 수 있음 )