3

有点复杂,但我会尽力解释我的问题。

我有一个主文件dashboard.html。其中我有一个 jQuery 函数,每 15 秒加载一次 mysql_query 以获得我需要的 15 个左右的变量。(这是一个财务/销售网络应用程序......销售代理想要接近实时的销售、订单、$earned..etc 更新),这些更新显示在 #div 中,其中包含多个列表项。对于每 15 秒查询一次,然后整个 div 一次更新的方法,这没有问题。正因为如此,我没有附加一个Jquery 效果(即fadeIn/fadeOut)到它,因为那时整个div 不断地褪色。不是我想要的视觉效果,但就目前而言,它有效。

我的目标:能够每 15 秒执行一次 mysql_query。获取变量(我目前已经这样做了。但现在,我希望能够仅更新已更改的 ListItem 并将淡入淡出效果附加到该项目,而不是整个#div。

我试图避免将查询分离为 15 个单独的查询,因为这显然效率不高。

希望这对每个人都有一些意义。可以提供代码,但我认为此时它不会有帮助.. 我需要了解开发正确代码所需的方法。感谢大家的预期帮助。

编辑:我添加了一些代码来帮助澄清我的立场:dashboard.html

var auto_refresh = setInterval(function (){
$('#order_jq').load('stats_count.php')
}, 15000); // refresh every 15 seconds

然后在体内:

<div class="span8">
<div id="order_jq" class="centerContent">
Patiently loading stats ...
</div><!-- End id="ortder_jq -->
</div><!-- End .span8 -->

stats_count.php 包括(为了清楚起见,已删除)

<?php
require "database/connect2.php";
$result = mysql_query( "SELECT .... NORMAL QUERY...NOTHING FANCY HERE")
while ($row = mysql_fetch_array($result))
{$orders = number_format($row['ordercount']);
$annual_order = number_format($row['annual_order']);
}

最后包含在 stats_count.php 我还包括列表项:

<ul class="bigBtnIcon">
    <li>
      <a href="#">
        <span class="icon entypo-icon-phone"></span>
        <span class="txt">Orders</span>
        <span class="notification"><?php echo $orders?></span>
      </a>
     </li>
      <li>
        <a href="#">
          <span class="icon brocco-icon-mic"></span>
          <span class="txt">Auburn</span>
          <span class="notification blue"><?php echo $annual_order ?></span>
        </a>
      </li>
</ul>

-D

4

3 回答 3

1

如果您有多个要更新的 div,则必须使用它们的类“.class”而不是 id “#id”来选择它们。

要每 15 秒创建一次 mysql_query,您需要设置 setInterval(function(),15000) 其中函数必须向某个页面发出 ajax 请求来执行此查询。

我可以建议你使用 jQuery Ajax 来处理这些请求。

于 2012-11-05T14:15:03.707 回答
0

在不了解有关您的数据返回的格式的更多详细信息的情况下,很难了解具体情况,但一般方法是:

  1. 将当前值存储到对象中,
  2. 使用传入的值创建一个新对象
  3. 循环遍历对象的属性,将传入值与现有值进行比较
  4. 更新单个面板(通过类或更具体的 id)
  5. 将传入值对象转换为当前值对象,为下一个 sql 查询做准备
于 2012-11-05T14:21:22.703 回答
0

如果我理解正确,可以这样做: - 你所有的列表项都必须有一个类属性,比如说“list_items”。- 使用 Jquery 获取数据后,您可以在 list_items 上执行 jquery.each(),这样您可以检查该列表项的值是否 == 新值,如果不是,则更新您的列表项。我希望这能稍微回答你的问题。

于 2012-11-05T14:25:57.680 回答