日期:2014-05-17  浏览次数:20782 次

JSP中的静态刷新问题
我写的一个index.jsp页面中显示了很多从Servlet传出的数据(显示的方法为<%= xxx %>),然后使用JS监听键盘事件,当监听到一个事件之后想Servlet发送一个请求,Servlet更新数据之后再显示在index.jsp中。
目前我用的方法是再Servlet最后加上一句response.sendRedirect("/index.jsp"); 但是这样的话重新加载页面会有抖动。
不知道有没有办法防止这种页面的抖动?
我问过别人听说AJAX可以进行静态刷新,可是网上的例子全都是利用Div.innerHTML = XMLHttpReq.responseText;这种更新一个值,我的页面中信息特别多,想要一次性重新载入整个DIV可以吗?
期待高手的帮助

------解决方案--------------------
就是用ajax啊
------解决方案--------------------
innerHTML不就更改了内容了,你可以对你servlet返回值进行拼串
把<div><table>什么的 拼成一个String 变量 然后传给ajax函数,在innerHTML
------解决方案--------------------
ajax是最好的解决方案。
------解决方案--------------------
探讨
我听说AJAX是应该可以解决的,但是不知道怎么解决?能说一下函数名吗?
Div.innerHTML = XMLHttpReq.responseText这个应该是不行的吧

------解决方案--------------------
建议你先学JS,基础都不会的话,AJAX你也用不了的~
------解决方案--------------------
简单说一下
你在servlet里把在前台页面显示的内容拼成一个String变量
例如:String result = "<div>aaaaaa<br/>bbbbbbb</div>";(result 的内容里如果有双引号用单引号替换)
返回给前台后 
JScript code

function comm(){
    var glbm = "aaaaa";
    $.post(
        '/wssb/WssbAjax',
        {code:4,glbm:glbm},
        function(data){
            data=$.trim(data);//data就是servlet返回的结果

                    document.getElementById("tddd").innerHTML=data;
        }
        );

       
    }

------解决方案--------------------
探讨
我觉得上百行的HTML的内容在Servlet中拼接出来然后返回应该不是很好,我是才接触JSP的,真的不是很清楚。AJAX的基本用法基本能了解的,但是不太想拼接字符串能有别的方法吗?