2

我设法得到这个脚本。它正在刷新对话框窗口的 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秒进行刷新会减慢borwser的速度或类似的东西?2.我想让它每3秒刷新一次更快,会发生什么不好的事情吗?

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


在 Kissaki 的帮助下,我设法制作了一个简单的函数,可以让我刷新链接 :) 这是示例:

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

1 回答 1

1

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

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

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

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

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

而且我没有看到任何内容更新,您可能在粘贴之前从代码中删除了它?

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

$("#category_dialog").click(function(event){
  //refresh code here
});
于 2010-09-17T21:03:47.410 回答