首页 > 学院 > 开发设计 > 正文

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

2019-11-06 07:13:08
字体:
来源:转载
供稿:网友

先说我遇到的问题,我在写一个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>里面,添加之前 应该先判断后台数据是否更新 若更新的话将原本页面上的数据清空,在重新添加。若没有更新就不做操作。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表