解决方案 »

  1.   

    要用js写,先将提交的数据提交到后台,成功后返回Json字符串,前端接收到字符串后解析字符创,然后用js拼接html,再将拼接的html append到相应的标签里面
    或者用iframe,直接刷新整个iframe,不过iframe的效率很低。
      

  2.   

    其实这必须要提交给服务器一次的,如果不提交这边就显示的话,那么万一提交失败不就不同步了么?
    Ajax异步传输传输的信息一般都是比较小的,传输其实很快的。
    附上一段我网站上的留言功能的AJax代码段吧。
    我的功能是只显示最新的三条留言。
    <script type="text/javascript">
    /*通过异步传输XMLHTTP发送参数到ajaxServlet,返回符合条件的XML文档*/
    var req=null;
    function addMessage(){
    var message=document.getElementById('message');
    if(message.value==""){
    alert("请输入留言内容");
    }else{
    getResult();
    message.value="";
    message.select();
    }
    }

    function getResult() {
    var message=document.getElementById('message');
    var sendstr;
    var url="http://192.126.119.139:8080/WebService/servlet/AjaxServlet?time="+new Date().toString();
    if(message==null){
    sendstr="";
    }else{
    sendstr = "sendmsg=" + message.value;
    }
    if(window.ActiveXObject)
            {
             req = new ActiveXObject('Microsoft.XMLHTTP');
            }
        else if(window.XMLHttpRequest)
            {
             req = new XMLHttpRequest();
            }
    if (req) {
    req.onreadystatechange = complete;
    req.open("POST", url);
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    req.send(sendstr);
    }
    }

    function complete() {
    if (req.readyState == 4) {
    var v;
    if (req.status==200) {
    v = req.responseText;
    showmsg(v);
    }
    if(req.status==0){
    v = "抱歉,留言功能咱不支持你所使用的浏览器== ===抱歉,留言功能咱不支持你所使用的浏览器== ===抱歉,留言功能咱不支持你所使用的浏览器== ";
    showmsg(v);
    }
    }
    }
    function showmsg(v){
    var values=v.split("===");
    if(values.length>0){
    for(var i=0;i<values.length;i++){
    if(values[i]!=null){
    var values2=values[i].split("==");
    document.getElementById("message"+(i+1)).innerHTML=values2[0];
    document.getElementById("time"+(i+1)).innerHTML=values2[1];
    }
    }
    }
    }
    window.onload=getResult();
    </script>
    </head>
      

  3.   

     $.ajax({
           type:"POST",
           url:"DiscussQueryAction.action",
           dataType:"JSON",
           async:false,
           data:{},
           timeout:2000,
           success:function(data,textStatus)
           {  
          
           var datamgs=data.returndata;
           $.each(datamgs,function(key,values){
           $("#show").append("<textarea rows='8' cols='40' style='margin:5px; border:solid 1px #ccc; overflow: hidden; z-index: y;'>"+values.content+"</textarea>");
           });
                                   },
           error:function(XMLHttpRequest,textStatus,errorThrown)
           {
             alert("XMLHttpRequest: "+XMLHttpRequest);
                        alert("error:"+textStatus);
                                alert("errorThrown:"+errorThrown); 
           }
           });
    我的是这样的;但还是没有达到预期效果
      

  4.   

    我觉得是重定向。你填写评论,回复,然后点击提交会把填写的信息插入数据库,而你有个页面是显示所有的评价,这时就需要把现在数据库中的评论取出来,然后在那个显示所有的页面上显示出来,所以是重定向。用ajax的麻烦想一下,你填写评论以后是点击了提交才会显示你刚才的评价并保存下来吧,那和ajax无关。
      

  5.   

    建议使用jquery,将使这些操作变得异常简单。
      

  6.   

    用jquery + ajax,用json格式传送数据,json格式中的数据有回复人,回复时间,回复内容,还有被回复人,这些你可以写在一个javabean中,再用一些框架比如gson.jar之类的,将bean转为json格式,再在js中解析,把数据动态的显示在页面对应位置。
      

  7.   

    第一点、怎么会和ajax无关呢楼主说的是和QQ空间里面发表评论类似的功能。而不是说用一个页面来展示评论。
    第二点、难道不是点击提交后,成功插入到数据库之后再将评论显示出来吗?
      

  8.   

    jquery中有关于ajax的post请求方法,然后json返回。
    这种异步刷新是可以实现你说的功能的。
      

  9.   

    重点是 页面要立即显示刚刚发布内容; 按照楼主说的的话每提交一次都要向服务器查询一次。
    页面是立即显示评论的内容呀,没有查询数据库,而是在插入的时候,插入成功,返回一个状态吗,再将这个状态码以json的形式返回到前端,前端解析,判断,成功了显示,不成功不显示。
      

  10.   

    按大家的想法,ajax+jquery弄,成功与否追加提示。
      

  11.   

      async:false,  这玩意应该是true吧。。而且ajax好多参数你可以不必写的,默认就好。success进了没