使用的是AJAX?你生成JS也要重新加载这个JS的!
最好使用AJAX吧,生成JS有点恐怖

解决方案 »

  1.   

    楼主的意思是不是要发帖后自动刷新然后显示出新发的贴?
    如果实现这个效果应该不难啊,发帖后。。你的操作。。最后
    js:window.location.href=window.location.href;跳转会本页
    最好贴出代码,有可能是你生成的js比较复杂,导致不能正确执行。
      

  2.   

    是不是被浏览器缓存了js文件啊,在测试之前清空下ie的缓存起作用吗?
      

  3.   

    用IE 很容易出现缓存的现象,还有像你这种留言板,完全可以使用AJAX实现, 何必再去转JS 。
      

  4.   

    缓存问题
    在服务端设置一下,那个js文件禁止客户端缓存
    也可以用以下方法
    <script>
    document.write("<script src=Data.js?t="+(new Date()*1)+"><\/script>");
    </script>
      

  5.   

    缓存问题。最简单的解决办法是在请求的url后面加一个随机参数,例如:
    test.js?js=123123
    test.html?html=1231221
    等等。
      

  6.   

    HTML页
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
      <META http-equiv="Content-Script-Type" content="text/javascript">
      <META http-equiv="Content-Style-Type" content="text/css">
      <META http-equiv="Pragma" content="no-cache">
      <META http-equiv="Cache-Control" content="no-cache,no-store,must-revalidate,post-check=0,ptr-check=0">
      <META http-equiv="Expires" content="Sun, 10 Jan 1990 01:01:01 GMT">
      <META http-equiv="Content-Type" content="text/html; charset=gb2312">
      <script src="test3.js" type="text/javascript"></script> <form name="form1" method="post" action="/bbc/SndUpload">
    <body>
    <table width="200" border="2">
        <tr>
          <td><div id="CommentTabs"></div></td>
        </tr>
        <tr>
          <td><input type="submit" name="Submit" value="TiJiao"></td>
        </tr>
    </table>   
    </body>
    </form></html>
    <script>
    jsTs();
    </script>
    test3.jsfunction jsTs() {  
    document.getElementById("CommentTabs").innerHTML=  "1209997616730"
    }
    点提交就调用SndUpload.java类就按照当前时间.重新生成一个test3.js文件 create(System.currentTimeMillis() + "");
    private boolean create(String aa) { String strContent = "function jsTs() {  "; strContent += "\r\n"; strContent += "document.getElementById(\"CommentTabs\").innerHTML=  \""
    + aa + "\"";
    strContent += "\r\n"; strContent += "}"; boolean reValue = true; FileWriter fw = null;
    try {
                                  //这里按照时间生成一个新的.js文件
    String strFile = "test3.js"; fw = new FileWriter(strFile);
    BufferedWriter br = new BufferedWriter(fw);
    br.write(strContent);
    br.close();
    fw.close(); } catch (IOException ex) {
    ex.printStackTrace();
    reValue = false;
    }
    return reValue;
    }然后我每次提交的时候我看test.js文件都生成了新的但是显示内容却不刷新!除非我点右键刷新!不知道怎么解决
      

  7.   

    我用asp测试过后没有问题啊??你的SndUpload.java类进行转向了没有啊???test.html
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
      <META http-equiv="Content-Script-Type" content="text/javascript">
      <META http-equiv="Content-Style-Type" content="text/css">
      <META http-equiv="Pragma" content="no-cache">
      <META http-equiv="Cache-Control" content="no-cache,no-store,must-revalidate,post-check=0,ptr-check=0">
      <META http-equiv="Expires" content="Sun, 10 Jan 1990 01:01:01 GMT">
      <META http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <body>
      <script src="test.js" type="text/javascript"></script>
        <form name="form1" method="post" action="test.asp">
            
                <table width="200" border="2">
                    <tr>
                      <td><div id="CommentTabs"></div></td>
                    </tr>
                    <tr>
                      <td><input type="submit" name="Submit" value="TiJiao"></td>
                    </tr>
                </table>       
        </form>
     </body>
    </html>
    <script>
        jsTs();
    </script>test.asp
    <%
    Dim fso
    Set fso=Server.CreateObject("Scripting.FileSystemObject")
    Dim txtwriter
    Set txtwriter=fso.OpenTextFile(Server.MapPath("test.js"),2,True)
    Dim js:js="function jsTs() {document.getElementById('CommentTabs').innerHTML='"&Now&"'; }"
    txtwriter.WriteLine js
    txtwriter.Close
    Set txtwriter=Nothing
    Set fso=Nothing
    Response.Redirect "test.html"'这里转向原来的html页面,没出现缓存的问题
    %>
      

  8.   

    没有啊我写了啊...........................public void service(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException 
    {
    String para =System.currentTimeMillis()+UUID.randomUUID().toString();
    response.sendRedirect("目标html页?time="+para);
    }
      

  9.   

    你的SndUpload.java类进行转向了没有啊??? 转了啊
    上面是 SndUpload.java的代码
      

  10.   

    留言薄数据生成JS,我狂晕。XML速度慢,优化啦。  XML扩展好。
    你的意思是不是JSON啊,大哥。
      

  11.   

    不能用ajax!就想知道现在怎么能自动刷新!不用点右键刷新!在ff上没有问题!
    在ie上不可以!必须手动刷新才会刷新
      

  12.   

    1 JS 后跟上参数.(一般是随机时间) 这样,IE的cache 控制会再去请求一次.
    2 JS 由脚本动态生成时,发送(no-cache) 的HTTP头...
      

  13.   

    分数很多阿,帮你顶,别忘了给点分>.<
      

  14.   

    可是html里面都有 nocache了啊
      

  15.   

    用AJAX 啊 兄弟  我晚上回去写个关于AJAX 客户端和服务端互传数组 和大量数据的贴 你晚上访问我博客吧 
      

  16.   

    http://blog.csdn.net/yuan38/archive/2008/05/06/2399782.aspx 
    这就是地址 郁闷 你直接点我头像就可以进去啊 
      

  17.   

    估计是sendRedirect的问题。
    生成javascript 通过location.reload()或者window.location.href='xxx'来跳试试
      

  18.   

    chinmo!!你为什么总要改变我的方法啊。。我这个逻辑不要用ajax啊
      

  19.   

    用框架实现  需要刷新的部分放在框架里 我就是ff可以ie不行!怎么设置或者修改一下就可以了吧?
    我的逻辑是
    应用是一个类似于留言板的功能!实现方法是
    用户提交留言内容,写入数据库的,同时将留言板第一页的内容静态化成xml文件!
    浏览时,只用候浏览静态html就可以了(这样高效率高些),然后html引用一个js,用这个js来读取生成的xml内容.
    但是由于读取xml效率比较低.所以现在把xml换成生成js文件!结果发生如下问题不知道该怎么解决!
    就是发送留言以后!页面确实也白了一下感觉是刷新了!但是新发的留言却不显示!
    然后我手工刷新一下刚才新发的留言才显示出来!但在ff浏览器上没有该问题!
    不知道这是什么问题该怎么解决阿
      

  20.   

    试试把js引用改为使用脚本输出看看,并加个随机参数<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
      <META http-equiv="Content-Script-Type" content="text/javascript">
      <META http-equiv="Content-Style-Type" content="text/css">
      <META http-equiv="Pragma" content="no-cache">
      <META http-equiv="Cache-Control" content="no-cache,no-store,must-revalidate,post-check=0,ptr-check=0">
      <META http-equiv="Expires" content="Sun, 10 Jan 1990 01:01:01 GMT">
      <META http-equiv="Content-Type" content="text/html; charset=gb2312">
      <script type="text/javascript">
    //脚本输出.js文件引用并且加个随机参数
    document.write('<script src="test3.js?rnd='+Math.random()+' type="text/javascript"></'+'script>');
    </script>    <form name="form1" method="post" action="/bbc/SndUpload">
            <body>
                <table width="200" border="2">
                    <tr>
                      <td><div id="CommentTabs"></div></td>
                    </tr>
                    <tr>
                      <td><input type="submit" name="Submit" value="TiJiao"></td>
                    </tr>
                </table>   
            </body>
        </form></html>
    <script>
        jsTs();
    </script>
      

  21.   

    应该页面缓存的原因把, 
    <meta http-equiv="pragma" content="no-cache" />
    <meta http-equiv="cache-control" content="no-cache" />
    <meta http-equiv="expires" content="0" />或则其他方法清除下,看是其他问题不???
      

  22.   

    HTML no-cache 的方式并不保险..
    还是在服务端 发送 no-cache  的HTTP头比较好,实在...大部分的做法是在JS后面加上随机数..你看看CSDN 贴子回复后的缓存清理,就明白了.
      

  23.   

    生成JS不是一个好方法你非要生成也可以
    你的JS就不能直接调用,带一个随机数!
      

  24.   

    public void service(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException 
    {
    String para =System.currentTimeMillis()+UUID.randomUUID().toString();
    response.sendRedirect("目标html页?time="+para);
    }
    我也加了随机数了啊。.......................
      

  25.   

    我说的是你的JS加随机数,不单是你的html页
      

  26.   

    <script src="test3.js" type="text/javascript"></script>
    就是你这个加一个随机数
      

  27.   

    不知道用这种方法可以不?一个留言html页面 提交 留言-》修改html页面-》留言放入数据库http://www.hua2r.com/html/board.html
      

  28.   

    光使用<META HTTP-EQUIV="Pragma" CONTENT="no-cache">是不起作用的,IE仍然会cache数据的。 通常IE在一页的数据没有满32K时它是不会缓存的。 
    如果把 no-cache 直接放在最前面的话,只要缓存中的数据没有到32K,当时ie是不会缓存的,但是当读过了no-cache标志,到了HTML其他部分时,如果数据超过了32K,IE仍然会将数据缓存起来。 这是由于IE分析一个页面的语法时是从上到下读取的
    所以解决方法是给你的JS加随即数,并不是给你的HTML页加随即数,因为你的JS已经缓存,这就是IE,FF里是由于他的页面语法与IE的不同!就不存在这个问题
      

  29.   

    我在网上看到有这么一个说法:
    <HTML> 
    <HEAD> 
    <META HTTP-EQUIV="REFRESH" CONTENT="5"> 
    <TITLE> 标题 </TITLE> 
    </HEAD> 
    <BODY> 
       页面的其它部分。。 
    </BODY> 
    <HEAD> 
      <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> 
    </HEAD> 
    </HTML> 
    说这样可以彻底禁止缓存