Ajax轮询更改session后前台页面session更新问题

来源:互联网 发布:广电双向网络改造方案 编辑:程序博客网 时间:2024/06/14 22:57

先说我遇到的问题,我在写一个bbs系统,用到 了struts2 mybatis spring 三个框架,在写查询所有的帖子并且显示在主页面时,我是用struts 2 带的 <s>标签 遍历session数据,将所有的帖子存在了session中, 但是 我想实现一个即时刷新的功能,即有其他人在发帖子 然后我在这可以看到直接更新出来。


最开始我采用的是ajax 调用后台查询数据库更新session 然后我没返回任何数据  当然结果可想而知,前面没更新。然后我看了看别人的 博客 看了看别人的论坛。发现没几个能写好的  然后我就换个思路,不更新session了 然后将list转成json数据并且返回。


话不多说 上代码

后台代码:

HttpServletRequest request=ServletActionContext.getRequest();HttpServletResponse response=ServletActionContext.getResponse();response.setCharacterEncoding("utf-8");//解决乱码问题List<Note>list=userService.checknote();//将list集合转换成json格式String json=JSONArray.fromObject(list).toString();response.getWriter().print(json);return null;

 前台js代码

<script type="text/javascript"> window.setInterval("shownote();",1000);//定时调用这个函数 达到即时刷新的作用//页面一加载完就运行$(function(){shownote();});function shownote(){$.post("user_checkNote",function(data){var dataObj=eval("("+data+")");temp=document.getElementById("ul");lis=temp.getElementsByTagName("li").length;if(lis<dataObj.length){$("#ul").html("");for(var i=0;i<dataObj.length;i++){$("#ul").append("<li> <a href='${pageContext.request.contextPath }/user_lookdetail?id="+dataObj[i].id+" '>"+dataObj[i].notehead+"</a><br><br></li>");}}});} </script>

下面是jsp代码中的<ul><li>

<h3><ul id="ul"></ul></h3>


OK 这个就行了 主要是ajax返回数据后 用for循环遍历  用

$("#ul").append

将遍历的添加到<ul>里面,添加之前 应该先判断后台数据是否更新 若更新的话将原本页面上的数据清空,在重新添加。若没有更新就不做操作。



1 0
原创粉丝点击