$.ajax({
type: 'POST',
url: 'localhost/publish'
data: {'name' : 'hak'},
async: false,
beforeSend: function() {
showLoading();
},
success: function() {
// Do when ajax call success
},
error: function() {
// Do when ajax call fail
},
complete: function() {
hideLoading();
}
})
beforeSend 부분이 작동하지 않을 경우는?
async : 'false' 때문에 발생한 가능성이 크다. ajax 옵션의 sync 는 ajax 통신의 동기 / 비동기 여부에 대한 옵션이다. default 값은 true 이고 이 경우 ajax call을 비동기로 처리한다. 만약, async의 값에 false를 넣으면 해당 ajax call을 동기로 처리해서 해당 요청에 대한 응답이 있을 때까지 모든 처리가 중단된다. 따라서, showLoading() 의 함수 처리가 async : 'false' 때문에 정지될 가능성이 높다.