새소식

Js/Jquery

ajax - 통신 중 로딩 이미지 출력

  • -
오늘의 명언
function lodingSign() { // 로딩 이미지 div var loading_div = `<div id='loading_div'> <img src='loding.gif' id="loading_img"/> </div>`; $('body').append(loading_div); // 마우스 커서 로딩 중으로 변경 $('html').css("cursor", "wait"); // ajax 함수 실행 버튼 클릭 이벤트 차단 $('button').attr('onclick', 'return false;'); } function lodingImgHide() { // 마우스 커서 기본값으로 변경 $('html').css("cursor", "auto"); // ajax 함수 실행 버튼 클릭 이벤트 차단 해제 $('button').attr('onclick', '함수이름()'); // 로딩 이미지 삭제 $('#loading_div').remove(); } // 기본 ajax 함수 function 함수이름() { // 로딩 이미지 출력 lodingImgShow(); var Params = {}; $.ajax({ url: "/url", type: 'POST', data: Params, datatype: 'json', // ajax 통신 성공 시 success: function (result) { switch (result.status) { case 'complete': console.log('성공 시'); break; case 'fail': console.log('실패 시'); break; default: console.log('예외 발생 시'); break; } }, // ajax 통신 중 에러 발생 시 error: function (request, status, error) { // 에러 출력 console.error("code:" + request.status + "\n" + "message:" + request.responseText + "\n" + "error:" + error + "\n" + "request:" + request); }, // ajax 통신 종료 시 complete: function () { // 로딩 이미지 종료 lodingImgHide(); } }); }

#loading_div { display: flex; justify-content: center; align-items: center; position: fixed; width: 100vw; height: 100vh; top: 0; left: 0; z-index: 9999; background-color: #000; opacity: 0.5; } #loading_img { width: 40px; position: relative; display: block; margin: 0px auto; }

반응형

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.