关于前台定时刷新数据的问题!~~

xuelei0803 2013-04-17 10:24:44
以下几种前台定时刷新数据方式,哪种更好更适合实时运行系统?
1、前台写个定时器,定时主动去数据库获取后台定时计算好并存库的数据
2、后台定时通知前台,让前台被动去数据库获取后台定时计算好并存库的数据
3、后台定时直接将计算好的数据打包发送给前台
...全文
236 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
catchdream 2013-04-17
  • 打赏
  • 举报
回复
引用 1 楼 gxingmin 的回复:
建议用第1种,前台js里定时器,到时间后ajax取数据并更新到前台页面上
一般这样可能用的多
gxingmin 2013-04-17
  • 打赏
  • 举报
回复
建议用第1种,前台js里定时器,到时间后ajax取数据并更新到前台页面上
by_封爱 版主 2013-04-17
  • 打赏
  • 举报
回复
仅供参考

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Stock4.aspx.cs" Inherits="Statics_Stock4" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>

    <script src="../base/js/dosoft.jquery.js" type="text/javascript"></script>

    <script src="../base/js/dosoft.base.js" type="text/javascript"></script>

    <script type="text/javascript" language="javascript">
      var fristid="";
     $(document).ready(function () {
              fristid=base.GetValue("fid");
             $.post("Handler.ashx?id="+fristid,function(data,status){
                    fristid=data.toString().split("@")[1];
                    data=eval(data.toString().split("@")[0]);
                    var div="<div id='results' style='width:200px;border:solid 1px red;display:none'>"
                    for(var i=0;i<data.length;i++)
                    {
                        var a=data[i].任务号;
                        var b=data[i].生产单元;
                        var c=data[i].工序名称;
                        var d=data[i].状态;
                        div+=a+"<br>";
                        div+=b+"<br>";
                        div+=c+"<br>";
                        div+=d;
                    }
                    div+="</div>";
                    $("#a div").remove();
                    $("#a").append(div);
                    base.show("results",3);
                    setInterval(next,2000);
              });
     });
     function next()
     {
        $.post("Handler.ashx?id="+fristid,function(data,status){
                   fristid=data.toString().split("@")[1];
                   data=eval(data.toString().split("@")[0]);
                 
                 
                    var div="<div id='results' style='width:200px;border:solid 1px red;display:none'>"
                    for(var i=0;i<data.length;i++)
                    {
                        var a=data[i].任务号;
                        var b=data[i].生产单元;
                        var c=data[i].工序名称;
                        var d=data[i].状态;
                        div+=a+"<br>";
                        div+=b+"<br>";
                        div+=c+"<br>";
                        div+=d;
                    }
                    div+="</div>";
                    $("#a div").remove();
                    $("#a").append(div);
                    base.show("results",4);
              });
     }
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <asp:HiddenField runat="server" ID="fid" />
    <div id="a">
    </div>
    </form>
</body>
</html>

  • 打赏
  • 举报
回复
对于实时的系统,建议通过socket,建立连接和监听端口的方式实现。即使B/s,也可以用html5的socket实现
游戏人间 2013-04-17
  • 打赏
  • 举报
回复
前看是什么样的系统结果如果是 B/S结构的 只能取第一种了。 如果是 C/S结构的 方案优先顺序为3,2,1后。
阿拉敏敏 2013-04-17
  • 打赏
  • 举报
回复
mark 楼主 实验之后 给我分享下 谢谢。

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧