私の問題を探していくつかの AJAX スレッドを調べましたが、私の場合の解決策が見つかりませんでした。つまりね:
ユーザーのコメントがあるページがあります。これらのコメントはデータベースに保存され、ユーザーが「更新」ボタンを押すたびにデータベースに接続され、応答としてコメントが取得されます。新しいメッセージがある場合は、「There are _ new messages」という div があります。ただし、この最後のメッセージは、メッセージが読み込まれる前に表示されるため、正しく表示されません。
コードは次のとおりです。
AJAX 関数
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;
}
}
});
}
そして、ここに問題があります。
$("#refresh").click(function()
{
num_comments_before=num_comments;
GetComments();
alert("done");
});
新しいコメントの前に「完了」メッセージが表示されます。新しいコメントが表示されたとき、つまりAJAXが終了したときにのみ、「完了」というメッセージが表示されるようにしたいと思います。