【问题标题】:jquery: auto reload/update page element?jquery:自动重新加载/更新页面元素?
【发布时间】:2011-02-17 22:33:54
【问题描述】:

我想每分钟升级一个特定的页面元素。

我知道如何使用 jquery load() 函数像这样在我的页面上重新加载元素。

    $('.mostliked').load("http://mypage.com" + " .mostliked >*", function() {
        //callback
    });

这很好用,因为 .mostliked 是我侧边栏中的一个元素。

但是现在我需要更新一个元素,我无法从其他页面中获取它的内容,例如我的侧边栏示例。

var 重载 = 60000; setInterval(function() {

    $('ul.rating').each(function() {
        //simply reload this element every minute
    })
    //update sidebar widget
    $('.mostliked').load("http://mypage.com" + " .mostliked >*", function() {
        //callback
    });

}, reload);

我该如何解决这个问题?

【问题讨论】:

  • 那么内容从何而来?
  • 想象一下我的页面上有投票按钮。当我点击 VOTE 时,我刚刚点击的这个投票元素会用 ajax 进行更新 -> 它的链接被删除,它的文本更改为“你投票”,并且 +1 被添加到这个元素的投票计数中。 cookie 被存储,您不能再次投票。因此,如果不同的人点击投票,它的计数就会增加。但是,除非您重新加载页面,否则您看不到这一点。我想知道是否可以简单地每分钟自动重新加载每个元素,以便人们可以看到同时有多少人投票。

标签: jquery ajax reload


【解决方案1】:
$(document).ready(function() {
                setInterval(function() {
    $(".mostliked").load("http://mypage.com" + " .mostliked","");
}, 60000);
});

【讨论】:

    【解决方案2】:

    在此页面上的“加载页面片段”标题下查看:http://api.jquery.com/load/

    为了“重新加载” ul.rating 元素,您需要在后台获取当前页面(使用load 或其他方法),并捕获其 ul.rating 元素并在页面中替换它们javascript 正在运行。

    注意:这不是最好的方法,如果您可以让一些服务器大小代码仅返回 ul.rating 元素所需的内容,而不是发出整个页面请求,那就更好了解析出你需要的部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-22
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 2011-05-17
      • 2012-06-14
      相关资源
      最近更新 更多