目前我正在使用这个函数,但是它只能刷新整个#注释div。
$.ajax({
url: 'WebForm1.aspx',
success: function (data) {
$("WebForm1.aspx #comments").html(data);
}
});
我试图找出jQuery AJAX是否能够检测到用户主动查看网页的内容与数据库中的内容之间的区别,因此每当有人添加评论时,访问者都会将传入的评论视为渐入状态,而不是定期刷新整个#注释div。
下面是我希望的工作流程:
AJAX请求1获取数据A、数据B、数据C,并将它们显示在浏览器的#注释中,并保存在缓存中。
(稍后将数据D添加到数据库中)
AJAX request 2 -> jquery获取数据A、数据B、数据C和数据D,与浏览器上的缓存进行比较,并检测到以前版本的注释中缺少数据D,并且只在新数据D中消失。
我该怎么做?请帮帮忙。谢谢。
发布于 2013-11-14 22:09:02
jQuery和jQuery.ajax都不能(或意味着)做你想做的事情。比较逻辑必须由你自己来完成。
我有几个建议:
希望这能帮助你走上正确的轨道。
发布于 2013-11-14 21:34:31
您将需要某种setInterval来不断地了解最新的注释是什么,并在最新注释的ID之后获取新数据。
JS
// check every ten seconds
setInterval(function() {
// figure out most recent comment and pass it to the URL so your query can search for anything greater than newest_comment
$.ajax({
url: 'WebForm1.aspx',
type: 'GET',
data: {'newest_comment':$('#comments').find('span.comment:eq(0)').data('comment_id')}, // newest_comment would be 5
dataType: 'HTML',
success: function (data) {
$("#comments").prepend(data);
}
});
}, 10000);
可能的
<div id="comments">
<span class="comment" data-comment_id="5"></span>
<span class="comment" data-comment_id="4"></span>
<span class="comment" data-comment_id="3"></span>
<span class="comment" data-comment_id="2"></span>
<span class="comment" data-comment_id="1"></span>
</div>
https://stackoverflow.com/questions/19988713
复制相似问题