$.ajax({
cache: ...,
type: "POST",
url: "...",
data: {...},
success: function (data) {
...
},
error: function() {
...
},
complete: hideLoading
});
(jQuery를 쓴다고 치고.. )보통 위처럼 ajax 호출을 하게 되는데... (물론 .done() 이나 .fail() 로 연계해서 쓸 수도 있고..)
아무튼, 일반적으로 ajax 호출 직전에 로딩중을 보여주고... success 와 error 에 로딩중 감춤을 넣어서 써왔으나, 이번에 ajax로 파일 다운로드 하는걸 하다보니 서버에서 파일이 아직 안왔는데 로딩이 빨리 사라지더이다
그래서 고민하다 complete: 에 hideLoading (=밖에 따로 짜둔 로딩중 감추는 함수) 을 걸었더니 파일 다운로드가 시작하는 타이밍에 딱 맞춰서 로딩중이 사라지네
다운로드 뿐만 아니라 success에서 처리하는 양이 많아 브라우저로 렌더링 되는게 좀 오래 걸리는 때에도 유용한 듯
error고 success고 따로 처리할 필요도 없고 간편하네... 이제는 늘 여기다 넣겠음!
(done() 이나 .fail()로 쓰는 경우는 .always() 를 쓰면 됨)
'웹 코딩 > JS + jQuery' 카테고리의 다른 글
jQuery - selectors / 선택자 목록 (0) | 2020.08.06 |
---|---|
나타났다 사라지는 토스트 메시지 - toast (0) | 2020.08.02 |
이미지 클릭하면 다운로드 시키기 (0) | 2020.08.02 |
jQuery - delegate (0) | 2020.08.02 |
캔버스에 박스 그리기 (0) | 2020.08.01 |
댓글