首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jquery "cache“参数是否响应我的需求?

jquery "cache“参数是否响应我的需求?
EN

Stack Overflow用户
提问于 2013-11-14 21:24:35
回答 2查看 78关注 0票数 0

目前我正在使用这个函数,但是它只能刷新整个#注释div。

代码语言:javascript
运行
复制
$.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中消失。

我该怎么做?请帮帮忙。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-14 22:09:02

jQuery和jQuery.ajax都不能(或意味着)做你想做的事情。比较逻辑必须由你自己来完成。

我有几个建议:

  1. 对服务器的数据调用应该接受时间戳参数。如果未设置参数,则返回整个注释集,包括当前时间的时间戳。如果设置了时间戳参数,则查找自那以后发布的注释,只发送那些注释,同样带有当前时间的时间戳。来自服务器的时间戳保存在客户机上,并与每个后续请求一起发送。这样,您总是只收到新的评论。将这些新的注释附加到屏幕上所需的位置和所需的动画中。
  2. 以上所述需要进行相当大的修改。如果您无法做到这一点,请使用当前代码。无论何时加载注释,都可以在dom中搜索第一个元素,其中包含了data-注释_id属性。这个属性的值是最高的注释id (假设您不能重新排序注释,否则您的检查需要更健壮)。在成功回调中,搜索数据参数( html),以查找具有data- comment _id属性的元素,并在数据-注释_ id值高于迄今最高注释id的元素之后丢弃所有内容。将您留给dom的html附加到所需的动画中。

希望这能帮助你走上正确的轨道。

票数 2
EN

Stack Overflow用户

发布于 2013-11-14 21:34:31

您将需要某种setInterval来不断地了解最新的注释是什么,并在最新注释的ID之后获取新数据。

JS

代码语言:javascript
运行
复制
// 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);

可能的

代码语言:javascript
运行
复制
<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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19988713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档