처음에 이런 생각을 했다.
왜 ajax로 호출하면... 당연히 한번만 하는 건데, 중복호출??
이게 말이되나?
단순하게 처음 생각이 들었던 것이.. 당연히 a= a+1 이러면 한번만 실행되지.. 저것이 두번실행되고 세번??
이건 말이 안되는 것 같아서 감이 더 안왔다.
$.ajax({
enctype: 'multipart/form-data', // file을 서버에 전송하려면 이렇게 해야 함 주의
processData: false,
contentType: false,
cache: false,
timeout: 600000,
url: "process.php",
type: "post",
data: data,
// dataType:"text", // text형태로 보냄
success : function(data){
// 주문서를 클릭하면 주문서 Ecount 넣어주는 것
switch(orderTmp) {
case 'estimate' :
$("#reservedWord").val('');
Ecount_login_click('estimate');
break;
case 'order' :
$("#reservedWord").val('');
Ecount_login_click('order');
break;
case 'saleinput' :
$("#reservedWord").val('');
Ecount_login_click('saleinput');
break;
case 'regist_item' :
$("#reservedWord").val('');
Ecount_login_click('regist_item');
break;
case 'workorder' :
$("#reservedWord").val('');
Ecount_login_click('workorder');
break;
case 'groupexe' :
$("#reservedWord").val('');
Ecount_login_click('groupexe');
break;
}
},
error : function( jqxhr , status , error ){
console.log( jqxhr , status , error );
}
});
}
실제 사용해 보니 ajax라는 것은 계속 호출하나 보다.
success: 성공하면 실행되는 것은 딱 한번일거란 나의 생각을 처참히 무너지고...
그동안 짜놓은 코드를 전부 수정해야 하는 대참사를 겪게 되는 느낌이..... 등골이 오싹하다.
그 수많은 시간 씨름했던 기억들이 주마등처럼 흘러내린다.....
싸늘하다~ 뭔지 모를 비수가 내 등에 그대로 정통으로 파고드는 것을 느낀다.
그래서 여러 방법들을 찾아서 해봤지만, 잘 안되었다.
settimeout을 이용하고 beforehand 기법도 이상하게 통하지 않다가 찾은 방법....
var ajaxRequest = null;
function sendAjaxRequest() {
// 중복 실행 방지
if (ajaxRequest !== null) {
ajaxRequest.abort();
}
// ajax 요청 생성
ajaxRequest = $.ajax({
url: "example.com/ajax",
type: "GET",
success: function(data) {
// ajax 요청 완료 후 처리할 작업
}
});
}
abort()를 이용해서 하니....
해결이 되었다...
if (ajaxRequest !== null) {
ajaxRequest.abort();
}
// ajax 요청 생성
ajaxRequest = $.ajax({
프로그램중인 주문서 화면...
abort로 해결된 하면인데,
호출이 얼마나 자주 일어나는지 눈이 돌아간다.
하지만, 해결해서 원하는 화면이 나옴을 감사하게 생각해야 겠다.
앞으로도 ajax를 통한 비동기 방식을 할때마다 이제는 좀 편하게 할 수 있지 않을까 생각한다.
이제 시작이다~
반응형
'IT tech Coding > jquery' 카테고리의 다른 글
대량 데이터도 빠르게! DataTables 서버사이드 처리와 모듈화로 최적화하기 (0) | 2024.12.21 |
---|---|
HTML 폼 요소에 Readonly 효과 적용하기: jQuery를 활용한 코드 작성법 (0) | 2024.11.24 |
[jquery] 웹에서 특정 버튼이나 문구 등 마우스 오른쪽 버튼 누를때 메뉴보이게 만들기 (0) | 2023.03.02 |
[jquery] 아이템을 상하 조정하고 싶을때 사용하면 되는 방법 (0) | 2023.03.02 |
[jQuery] 자주 만나는 에러 Uncaught TypeError: Cannot read properties of undefined (reading 'mode') 에러 잡기 (0) | 2023.02.16 |