내 문제를 찾고있는 AJAX 스레드를 찾았지만 제 경우에 대한 해결책을 찾지 못했습니다. 여기에 문제가 있습니다 :진행하기 전에 AJAX가 완료 될 때까지 기다려주십시오
나는 사용자 의견이있는 페이지가 있습니다. 이러한 주석은 데이터베이스에 저장되며 사용자가 "새로 고침"버튼을 누를 때마다 데이터베이스에 대한 연결이있어 주석을 응답으로받습니다. 새 메시지가있는 경우 "새 메시지가 있습니다"라는 div가 있습니다. 그러나이 마지막 메시지는 메시지가로드되기 전에 전에 으로 표시되기 때문에 제대로 표시되지 않습니다.
function GetComments()
{
$("#cont-comment").empty(); //div that contains the messages
$.ajax(
{
url: "get.php",
dataType: "json",
success: function(data)
{
n_msg=data.length;
for (i=0; i<n_msg; i++)
{
nick=data[i].nick;
msg=data[i].msg;
WriteNewComment(nick,msg);
num_comments=document.getElementsByClassName("comment-msg").length;
}
}
});
}
그리고 여기에 문제의
AJAX 기능 :
여기에 코드입니다.
$("#refresh").click(function()
{
num_comments_before=num_comments;
GetComments();
alert("done");
});
"완료되었습니다"라는 메시지가 새 설명 앞에 나타납니다. AJAX가 끝나면 새로운 댓글이 나타날 때만 "완료"라는 메시지가 나타납니다.
async는 더 이상 사용되지 않으며 권장되지 않지만 대신 콜백을 사용해야합니다. – Bala
그 덕분에, 고마워! Bala, 귀하의 답변에 감사드립니다.모든 것을 실행하면 옵션을 사용하겠습니다. 고맙습니다. – Alfall