それで、私は何か疑問に思っていました。私が作っている IM/chat の Web サイトでは、10 秒ごとにデータベースをチェックして、新しいデータが入っていないかどうかを確認しています。また、ユーザーが新しいコメントを投稿すると、データベースに自動的に送信されます。リロードせずにコメントリストに追加します。ただし、毎回すべてのコメントが読み込まれます。
すべての古いコメントにもそれを行わずに、新しいコメントに効果 (フェードインなど) を追加できるかどうか疑問に思っていました。
function update(){
oldhtml = $('#listposts');
$.ajax({
type: "POST",
data: "",
url: "update.php",
success: function(msg){
$("#listposts").html(msg);
$('.comment_date').each(function(){
$(this).text('[' + prettyDate($(this).text())+']');
if(oldhtml == )
});
}
});
}
var intervalID = window.setInterval(update, 10000);
それが私の更新コードです。これが私の郵便番号です:
$("#postbutton").click(function () {
if(!$('#post').val()==""){
$.ajax({
type: "POST",
data: "data=" + $("#post").val(),
url: "post.php",
success: function(msg){
$("#listposts").html(msg);
$('.comment_date').each(function(){
$(this).text('[' + prettyDate($(this).text())+']');
});
}
});
$("#post").val("");
}
});
ご覧のとおり、prettyDate も使用しています。しかし、それはこの問題とは何の関係もありません。
タイトルが示すように、現在の html を変数 (oldhtml) に保存してから、新しいものをロードしようとしました。次に、2 つを比較し、新しいコメントを使用してフェード インします。私は要点を逃していますか?
ああ、明らかな解決策を見逃したからといって、反対票を投じないでください。よく説明しないと使えないと思っていたのですが、そうしました。