【问题标题】:refresh content of a jquery ui dialog刷新 jquery ui 对话框的内容
【发布时间】:2011-04-13 22:18:24
【问题描述】:

我设法得到了这个脚本。它正在刷新对话窗口的 div:

function getRandom() {
$("#category_dialog").load("<?php echo $category; ?>", '', callback);

}

function callback() {
    $("#category_dialog").show("fast");
    setTimeout("getRandom();", 10000);
}

$(document).ready(getRandom);

一切正常。 div 每 10 秒刷新一次。但我对这种方法有些怀疑。 1. 因为在任何 10 秒进行刷新会减慢浏览器的速度或类似的东西? 2.我想让它每3秒刷新一次更快,会发生什么不好的事情吗?

我更愿意以某种方式创建一个链接以在点击时刷新内容——但我找不到任何好的示例。有人可以帮我解决这个问题。 所以我希望使用 load.() 加载 category_dialog div,但使用 onclick 调用 - 然后显示新内容。 谢谢!


在 Kissaki 的帮助下,我设法制作了一个简单的功能,让我成为一个刷新链接 :) 这是示例:

$(function() {
  $("#refresh").click(function() {
     $("#category_dialog").load("<?php echo $category; ?>")
  })
})

【问题讨论】:

    标签: jquery refresh partial-page-refresh


    【解决方案1】:

    如果您想减少刷新间隔,您只需考虑性能:带宽、服务器负载和客户端负载。

    如果不是在后台进行无用的刷新,客户端负载应该不是问题。例如,您可以仅在窗口具有焦点时刷新,以减少拉取无用的、从未见过的数据。

    由于 div 只显示一次,并且每次刷新时都会调用 show 函数(当它仍然显示时,因为它从未隐藏过),所以您可以删除该调用。我不太确定 jQuery 是如何实现它的,以及你可以在这里获得多少性能提升,但无论如何在第一次调用之后它是一个无用的调用。

    您也可以在回调函数中使用它,因为您正在使用加载函数。不过,您必须检查一下。

    此外,您不需要将空字符串传递给加载函数。该数据参数是可选的。

    由于我没有看到任何内容更新,您可能在粘贴到这里之前将其从代码中删除了?

    对于onclick,jQuery提供了click()函数http://api.jquery.com/click/

    $("#category_dialog").click(function(event){
      //refresh code here
    });
    

    【讨论】:

    • 我想我错过了一些东西。我把刷新代码放在 $("#category_dialog").click(function(event){ //refresh code here });但如果我点击它不会刷新 - 我还将 id 更改为 refresh_content 并将其用作链接,所以如果我点击它,一切都会刷新但仍然无法正常工作..
    • 一直在看这里api.jquery.com/click,我设法创建了一个刷新链接。我将用解决方案编辑我的问题。感谢您的宝贵时间 - 我非常感谢您的好回答!
    猜你喜欢
    • 2013-03-29
    • 2012-07-16
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多