代码之家  ›  专栏  ›  技术社区  ›  Shadi Almosri

jquery和实时表更新

  •  0
  • Shadi Almosri  · 技术社区  · 15 年前

    我想知道是否有人能为我指出一些例子或示例代码的方向,这些例子或示例代码是关于我试图实现但还没有能够破解的表操作的。

    我目前有一个正在生成的数据表,它使用 Tablesorter jquery插件。

    我想添加这些额外的功能

    1. 每隔几秒钟用任何新数据(不刷新页面)自动更新表,并保持排序。我可以创建php脚本来为新数据输出json,但不知何故,我需要将显示的最后一行的ID发送给它(这样我就可以找到要显示的新行)。
    2. 一旦添加了一个新行(理想情况下具有平滑的渐变效果,如淡入淡出),它将有一个CSS类“new”,或者一些可以赋予它新颜色的东西。
    3. 然后,新颜色将在页面保持焦点的15秒内褪色为正常的表格样式(删除类)。
    4. 如果页面没有焦点,并且有新数据存在(即在后台刷新,但用户正在查看另一个窗口/选项卡),则等待直到用户将焦点放在窗口/选项卡上,然后按3所述将淡入正常颜色。

    我希望这已经很清楚了,我对焦点问题最怀疑的部分是第4点,但我认为Facebook似乎通过他们的实时新闻订阅来做到这一点。在我聚焦窗口之前,它似乎不会更新(我假设是这样)

    任何帮助和指导都将不胜感激!

    我的桌子是这样的:

    <table class="tablesorter" cellspacing="1"> 
        <thead> 
        <tr> 
            <th>ID</th> 
            <th>lid</th> 
            <th>Time</th> 
            <th>Season</th> 
            <th>Keyword</th> 
            <th>Campaign</th> 
            <th>IP</th>         
        </tr> 
        </thead> 
        <tbody> 
            <tr> 
                <td class="id">6875</td> 
                <td class="lid">-----</td> 
                <td class="time">28 Nov 09 16:35:24</td> 
                <td class="season">xxx xxx</td> 
                <td class="keyword">xx xx xxxx</td> 
                <td class="campaign">xxx</td> 
                <td class="ip">xx.xx.xx.xx</td> 
            </tr>
        <tbody> 
    <table>
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   jkndrkn    15 年前

    1:要在JavaScript中每隔几秒钟触发一个事件,请使用 setTimeout() .使用 :last 过滤以帮助您抓取最后一行。将ID存储在最后一行的隐藏输入字段中。

    2:上次我试过,淡入淡出和向下滚动在表格行上不起作用。我必须创建非常难看的黑客才能使这个功能发挥作用,比如创建一个全新的 <table> 每行。也许jquery的最新版本有所改进?退房 Effects 有关如何为内容设置动画的列表。

    3:您可以使用回调来实现这一点,就像淡入淡出、回滚和其他效果一样。

    4:我没有检测窗口焦点的经验,尽管看起来确实有资源可以帮助您完成这个任务。以下是一些: http://www.webdeveloper.com/forum/archive/index.php/t-33457.html http://www.thefutureoftheweb.com/blog/detect-browser-window-focus

    推荐文章