티스토리 뷰
1. Ajax
JavaScript의 라이브러리중 하나이며, Asynchronous Javascript And Xml(비동기식 자바스크립트와 xml)의 약자.
JavaScript를 이용해서 비동기적으로 서버와 브라우저가 데이터를 주고 받아 전체 페이지를 새로 고치지 않고 페이지의
일부를 위한 데이터를 로드하는 방식
(이 때 사용하는 API가 XMLHttpRequest. 그러나 보통 JSON을 많이 사용한다.)
<비동기(async)방식>
: 웹페이지를 리로드하지 않고 데이터를 불러오는 방식.
즉, 서버와 통신을 하면서 해당 페이지에서 다른 작업을 동시에 할 수 있다.
-
장점:
페이지 리로드의 경우, 전체 리소스를 다시 불러오면서 이미지, 스크립트 , 기타 코드 등 모두 재요청하기 때문에 불필요한 리소스 낭비와 시간 낭비가 발생한다. 그러나 비동기식 방식을 이용할 경우, 필요한 부분만 불러와 사용하기 때문에 효율적으로 리소스를 사용할 수 있고, 시간도 아낄 수 있다.
2. jQuery & Ajax
Ajax를 이용하여 개발을 손쉽게 할 수 있도록 미리 여러 기능을 포함해 놓은 개발 환경을 Ajax 프레임워크라고 한다.
여러 Ajax 프레임워크 중 현재 가장 널리 사용되고 있는 것은 jQuery 다. jQuery 로 Ajax 를 사용하게 되면 브라우저 들간의
차이점을 jQuery 가 알아서 처리해준다는 장점이 있다.
jQuery는 Ajax와 관련해서 많은 API를 제공하는데 그 중에서 가장 중요한 API는 $.ajax
이다.
$.ajax([settings]) //비동기식 Http request를 수행
//settings는 Ajax 통신을 위한 옵션을 담고 있는 객체가 들어간다.
jQuery 예제
$(document).ready(function(){
$(".heart").click(function(){
$.ajax({
url: "{% url 'example' %}" // 요청을 보낼 URL 주소. 기본값은 현재 URL 주소
data: {'data': 'test'}, // HTTP 요청과 함께 서버로 전송할 데이터
dataType: "json", // 서버에서 보내줄 데이터 형식
// (생략하면 요청한 자료에 맞게 자동으로 형식이 지정 됨)
type: "POST", // HTTP 요청 방식
success: function(response) { // Ajax로 통신이 정상적으로 이뤄지는 경우 실행할 함수
alert("Success");
},
error: function(xhr) { // Ajax로 통신이 실패할 경우 실행할 함수
alert("Error");
}
});
});
});
이 외에도 여러가지 옵션이 있다.(참고)
서버(Django) 측 예제
def exampleView(request):
data = request.POST.get('data')
# 방법 1
return HttpResponse(json.dumps({'result': 'success',}), content_type="application/json")
# 방법 2
responseData = {
'result': 'success',
}
return JsonResponse(responseData)
ajax 옵션 중 dataType 옵션을 json 으로 지정했기 때문에 서버에서 데이터를 보내줄 때 json 형식으로 변환하여
돌려줘야 한다.
참고 자료
- Total
- Today
- Yesterday
- Django 로그인
- Django 프로젝트 생성
- 장고
- Django
- Django Instagram
- 북마크 어플리케이션
- Django 북마크
- Django 좋아요
- Redis
- Django 회원가입
- python
- 서점 어플리케이션
- Django 비밀번호 수정
- Django User
- Django 컬렉션
- Django 검색
- Django 업로드
- MySQL
- 파이썬
- query parameter
- Django 팔로우
- Django 댓글
- Django 어플리케이션
- Django 인스타그램
- Django 해시태그
- java
- Django 로그아웃
- Django 회원 정보 수정
- Redis Cache
- Django application
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |