我jsp页面为:<body>
    <table style="margin: 0 0 0 0;" width="100%" cellpadding="0" cellspacing="0" height="100%">
       <tr valign="top">
         <td width="10%" height="100%" id="le">
         <%--左侧的树 --%>
         <div style="width: 150px; overflow: auto;margin-bottom: 0px; height: 100%; margin-left: 0px;">
            <sx:tree id="treeDiv" cssClass="tree" label="" showGrid="true" showRootGrid="false" expandedNotifyTopics="expandedNotify">
               <s:iterator value="treeList">
                  <sx:treenode label="<a href='menu4?tabId=%{nodekey}&root=%{treeList[0].pid}'>%{nodename}</a>">
                     <s:iterator value="children">
                       <sx:treenode label="<a href='menu4?tabId=%{nodekey}&root=%{treeList[0].pid}'>%{nodename}</a>" >
                           <s:iterator value="children">
                       <sx:treenode label="<a href='menu4?tabId=%{nodekey}&root=%{treeList[0].pid}'>%{nodename}</a>">
                           <s:iterator value="children">
                        <sx:treenode label="<a href='menu4?tabId=%{nodekey}&root=%{treeList[0].pid}'>%{nodename}</a>" >
                           <s:iterator value="children">
                       <sx:treenode label="<a href='menu4?tabId=%{nodekey}&root=%{treeList[0].pid}'>%{nodename}</a>" ></sx:treenode>
                       </s:iterator>
                        </sx:treenode>
                       </s:iterator>
                       </sx:treenode>
                       </s:iterator>
                       </sx:treenode>
                     </s:iterator>
                  </sx:treenode>
               </s:iterator>
            </sx:tree>
           </div>
         </td>
         <td height="100%" width="1%" bgcolor="#3C64B9" onclick="hiddencolumns()"><span id="switchPoint" class="navPoint" title="关闭/打开左栏">3</span></td>
         <td width="89%">
               <%--左侧的目录树所对应的右边的选项卡效果实现 --%>
   <s:if test="null != tabList2">
   <sx:tabbedpanel id="tab2" closeButton="pane">
   <s:iterator value="tabList2" status="st"><%--每五分钟刷新一次div中的内容,有10秒钟的延迟 --%>
      <sx:div label="%{nodename}" updateFreq="5*60*1000" delay="10000">
      页面组里展示的内容
    <iframe name="cont" frameborder="0" id="${nodekey }" src="opinion?tabId=${nodekey }"
    align="left" scrolling="auto" marginheight="0" marginwidth="0" width="100%" height="79%" >
    </iframe>
  </sx:div>
   </s:iterator>
   </sx:tabbedpanel>
   </s:if>
   
   <%--右侧的自定义页面或链接页要展示的内容--%>
   <s:else>
    <sx:div label="%{nodekey}" updateFreq="5*60*1000" delay="10000" id="sd">
    <iframe style="margin: 0 ,0, 0, 0" name="cont" frameborder="0" id="cont"  src="opinion?tabId=${nodekey }"
      align="left" scrolling="no" marginheight="0" marginwidth="0" width="100%" height="85%" onload='IFrameReSizeHeight("cont");IFrameReSizeWidth("cont");'>
    </iframe>
</sx:div>
   </s:else>
         </td>
       </tr>
    </table>
  
  </body>我想要里面的iframe模块每5分钟刷新一次,
但整个页面不出现闪烁,只是iframe中显示的内容会更新(如果数据库中有更新的话)
怎么解决?

解决方案 »

  1.   

    你的右侧iframe要显示什么内容?
      

  2.   

    怎么看不到?
    http://hi.csdn.net/space-673481-do-album-picid-837798.html
      

  3.   

    如非你用ajax,要不然,肯定是有闪烁的。
      

  4.   

    用JS做个定时器。调用AJAX方法。AJAX网上例子很多啊。建议你用JQUERY框架 
      

  5.   

    我做了个定时刷新:<script type="text/javascript"> 
    function getonlinenum(){ 
    var id = "<%=tabId%>";
    url="test1?tabId="+id+"&timeStamp="+new Date().getTime();//XMLHttpRequest做ajax请求链接加时间戳,避免浏览器缓存
    var objXMLHTTP;
    //开始初始化XMLHttpRequest对象
    if(window.XMLHttpRequest){ //Mozilla,IE7+,Firefox,Chrome,Opera,Safari浏览器
    objXMLHTTP = new XMLHttpRequest();
    if (objXMLHTTP.overrideMimeType){//设置MiME类别,针对某些特定版本的mozillar浏览器的BUG进行修正
    objXMLHTTP.overrideMimeType('text/xml');
    }
    }
    else if(window.ActiveXObject){ //IE6,IE5浏览器
    try{
    objXMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
    try{
    objXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
    }catch(e){}
    }

    alert(objXMLHTTP);
    objXMLHTTP.onreadystatechange=function(){
    if (objXMLHTTP.readyState==4 && objXMLHTTP.status==200){
    var strReturn=objXMLHTTP.responseText; 
    online_num.innerHTML=strReturn;
    }
    }
    objXMLHTTP.open( "GET", url,false); //false同步,true异步
    objXMLHTTP.send(); 
    jq();
    mouseover();

        </script>我body里面<body onload="setInterval('getonlinenum()', 5000);">
    在getonlinenum()中调用了上面红色部分mouseover()之后,就只会刷新一次就不刷了。
    如果不调用mouseover(),就会每5秒刷新一次,有谁知道原因啊?
    我mouseover()方法及mouseover()要调用的方法为:<script type="text/javascript">
         //定义一个带参数的函数,解决动态绑定闭包问题用到的函数
    function tt(id,event) {
    this.trc = function() {
    rc(id,event); //调用相应函数
    }
    }

    function mouseover() {
    document.getElementById("div2").style.display="none";
    //var table1=document.getElementsByTagName("table")[0];
    var table2=document.getElementsByTagName("table")[1];
    //var tspans=table1.getElementsByTagName("span");
    var spans1=document.getElementsByTagName("span");
    var spans2=table2.getElementsByTagName("span");

    for(var i=0;i<spans1.length;i++) {
    spans1[i].title=spans2[i].innerHTML;
    var tid = spans1[i].id;
    var col = new tt(tid,event); //解决闭包问题,new一个新的函数类
    spans1[i].oncontextmenu = col.trc; //触发鼠标右键事件
    }
    }
    </script>
    <script type="text/javascript">
           function rc(id,e) {
            e = window.event?window.event:e;
         var wd = Ext.create('Ext.window.Window', {
         frameHeader : false,
         modal: true,
         floating : true,     
                //plain : true,
             width: 385,
             autoHeight: true,
             //layout: 'fit',
             items: [{autoLoad:{url:"testRC?sid=" + id,scripts:true}}]
         })
         wd.showAt([e.clientX,e.clientY]);
         }
        </script>
      

  6.   

    经过测试发现为 spans1[i].title=spans2[i].innerHTML;的问题。
    不加这句的时候就可以正常刷新,加了之后就只刷新一次就不刷了,不知道有什么方法可以解决?
      

  7.   

    后来换了方案,没用到spans1[i].title=spans2[i].innerHTML了,就好了