6시간동안 JAVA 코드 문자인줄알고 삽질했는데 Ajax가 DB에 무작정 반복적으로 신호를 주어 DB 조회가 끊어진것이였다. 검색을해도 안나오길래 고통방는 이들을 위하여 해결방법을 올린다.
1. 내용
ajax로 DB를 반복 조회를 하는 JAVA 로직은 정확한데 데이터 조회시 다음과 같이 끊어져서 보인다.
원인은 DB가 로직을 통하여 Ajax의 통신을 처리하는데 Ajax가 신호를 주어 데이터를 획득 못하는 것이다.
2. 해결방법
Ajax 롱 폴링을 적용한다. 'complete: poll, timeout: 30000' 추가한다. 새로운 응답값을 받기전까지 대기한다.
showMessage();
setInterval(showMessage, 1000);
function showMessage() {
var message = $('#sendM').val();
$.ajax({
type: 'POST',
url: './showMessageServlet',
data: {
message: message
}, complete: poll, timeout: 30000, // poll과 타임아웃을 설정
success: function(result) {
out = result.split('#');
$('#messageA').html(out[0]);
var vScrollDown = $("#selecter").prop('scrollHeight');
$("#selecter").scrollTop(vScrollDown);
}
});
}