我的页面中使用了一个自定义的组件,组件操作数据库,比较耗费时间,因此做了一个进度条显示在页面当中,组件同时提供了一个事件,当处理数据库的过程当中隔一定的时间就来产生这个事件,页面中通过处理这个事件来刷新页面的进度条显示,但是因为这一切都是服务器端的操作,客户端并不知道页面的工具条的Value已经改变了,因此需要刷新,我想知道的是,如果在这个自定义的事件处理当中使得客户端失效,并将当前页面(进度条值已经改变)重新发送给客户端?比较困惑,当前我是用客户端自动按时刷新来实现的,比较笨拙,哪位有什么高见?谢谢

解决方案 »

  1.   

    想要服务端自动推往客户端是无法实现的.
    但可以通过其他手段达成你的目的,象你采取的刷新就是方法之一,还可以应用iframe进行刷新,也可以用xmlhttp方式间接达到刷新效果,也可以采用欺骗的方式也就是直接在客户端脚本里面实现,与进度无关.下面给你一个XMLHTTP的函数吧(脚本)//以XML求取数据
    function XmlPost()
    {
    var result = "";
             var webFileUrl = "xxxxx.aspx";
    var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
    xmlHttp.open("POST", webFileUrl, false);
    xmlHttp.send("");
    result = xmlHttp.responseText;
    return(result);//返回所读取的页面返回的信息
    //让此脚本定时循环执行,单位为毫秒
    setTimeOut("XmlPost()",10*1000)
    }
      

  2.   

    多谢,我最终采用了iframe的方式,现在希望能够做到iframe刷新时候不要在状态栏闪动,这样就感觉不到刷新了,哪位有什么高见?