兄弟们,有一请求,望大家帮忙!!!
如果数据库表中的数据按照时间间隔,一秒更新一次,那我们的web前台要实时的查看数据库中的数据,不用一直点击刷新,怎么实现啊!
兄弟们,提前说一声,肯定是能实现,因为我见过,工业上比如水位在线监控,完全可以用web监控的,而且,没有需要加载客户端插件!
提点建议谢谢了

解决方案 »

  1.   

    使用ajax进行定时局部刷新就可以了。
      

  2.   

    使用js ajax进行定时局部刷新就可以了。
      

  3.   

    可以在我的blog上看一下,javax定时刷新的东西.
      

  4.   

    谢谢了,挺好的,能不能大概给解释一下你的程序,ajax的程序刚接触,看的有点吃力,还有这部分应用在web系统中,服务器的负荷重不重,应该是和并发数量,访问数据点数,更新周期,还有服务器的配置有关,您能不能给估计一下,让我有个参考,比如,一个普通的ibm x3650(至强处理器,2G内存,320G硬盘),大概有40个点,3s更新一次,用mysql的数据库,采用ssh整合编写,这样可行吗?
    还有问大家个低级的问题,如果有一个软件采集水位的数据,存入数据库,我要采集他的数据,从数据库采集好,还是从他的接口取数据好,从他的接口数据困难不????
    谢谢!
      

  5.   

    1 <script> 
     2 var limit="0:10" 
     3 if (document.images){ 
     4 var parselimit=limit.split(":"); 
     5 parselimit=parselimit[0]*60+parselimit[1]*1; 
     6 } 
     7 function beginrefresh(){ 
     8 if (!document.images) 
     9 return; 
    10 if (parselimit==1) 
    11 window.location.reload(); 
    12 else{ 
    13 parselimit-=1; 
    14 curmin=Math.floor(parselimit/60); 
    15 cursec=parselimit%60; 
    16 if (curmin!=0) 
    17 curtime=curmin+" min "+cursec+" sec "; 
    18 else 
    19 curtime=cursec+" sec "; 
    20 window.status=curtime; 
    21 setTimeout("beginrefresh()",1000); 
    22 } 
    23 } 
    24 window.onload=beginrefresh;25 </script>加到body中间,这里是0:10为10秒钟,可以自定义
      

  6.   

    ajax+js实现无闪烁定时刷新页面
          
     Code     <script type="text/javascript">        function makeRequest() {            var guid = rnd();            //记住给个随机数,不然的话有缓存            var url = "example_b.aspx?id=" + guid;            createXMLHttpRequest();            xmlHttp.onreadystatechange = handleRefresh;            xmlHttp.open("GET", url, false);            xmlHttp.send(null);        }        //创建xmlHttp        var xmlHttp;        function createXMLHttpRequest() {            if (window.ActiveXObject) {                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");            }            else if (window.XMLHttpRequest) {                xmlHttp = new XMLHttpRequest();            }        }        //返回信息        function handleRefresh() {            if (xmlHttp.readyState == 4) {                if (xmlHttp.status == 200) {                    if (xmlHttp.responseText == "sessionNull") {                        //alert('登录超时,帐户注销,请重新登录...');                        window.parent.document.location = "UserLogin.aspx";                    }                        setTimeout("makeRequest()", 8*000);                }            }        }        //创建随机数        rnd.today = new Date();        rnd.seed = rnd.today.getTime();        function rnd() {            rnd.seed = (rnd.seed * 9301 + 49297) % 233280;            return rnd.seed / (233280.0);        }        function rand(number) {            return Math.ceil(rnd() * number);        }    </script> 举个例子,比如说要example_a.aspx页面加载以后让测试页面example_b.aspx每8秒刷新一次,检查存放登录用户名的session值是否为空,如果session为空,则返回登录页面。那么我们可以将上面的js代码放在example_a.aspx页面的<head></head>标记之间,然后在页面body的onload事件中调用上面的方法:onload="makeRequest()",然后在页面的Page_Load事件中判断:              if (Session["user"] == null)Code             {                Response.Clear();                Response.Write("sessionNull");                Response.End();            }
    var x = 0;
    function makeRequest() {
    var guid = rnd();
    //记住给个随机数,不然的话有缓存
    var url = "TestPage.aspx?id=" + guid;
    createXMLHttpRequest();
    xmlHttp.onreadystatechange = handleRefresh;
    xmlHttp.open("GET", url, false);
    xmlHttp.send(null);
    x++;
    }
    //创建xmlHttp
    var xmlHttp;
    function createXMLHttpRequest() {
    if (window.ActiveXObject) {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
    xmlHttp = new XMLHttpRequest();
    }
    }//返回信息
    function handleRefresh() {
    if (xmlHttp.readyState == 4) {
    if (xmlHttp.status == 200) {
    //每60秒刷新一次页面
    if (xmlHttp.responseText == "sessionNull") {
    //alert('登录超时,帐户注销,请重新登录...');
    window.parent.document.location = "UserLogin.aspx";
    }
    if (x < 150) {
    setTimeout("makeRequest()", 8*000);
    }
    }
    }
    }//创建随机数
    rnd.today = new Date();
    rnd.seed = rnd.today.getTime();
    function rnd() {
    rnd.seed = (rnd.seed * 9301 + 49297) % 233280;
    return rnd.seed / (233280.0);
    }
    function rand(number) {
    return Math.ceil(rnd() * number);

      

  7.   

    如果初学ajax,建议看jQuery。它用起来比较简单。
      

  8.   

    dwr反推 server push模式定能解决,去搜吧
      

  9.   


    ajax即可实现刷新。
    采集数据,如果实时性要求高,则他的数据库数据更实时,就取数据库,如果接口数据更实时,就取接口。这个要随业务需求来的。
    相对来说,从数据库取数据容易点,无非就是select/insert之类。接口的话有的还得调试半天,还得针对他写接口的语言来调用,相对麻烦
    个人意见,仅供参考
      

  10.   

    谢谢各位的帮助,昨天网上狂学了一顿ajax,挺好,用ajax肯定能够实现实时数据的更新