最近在做个网站的、有个地方是想这样做的、就是滑动到下面、然后或触发滑动刷新事件、接着就通过ajax发送请求给action,之后从action获得数据后、局部更新内容、但现在的问题是、大部分地方都没问题了、就是我从action获得了更新了的内容之后、如何能把数据更新到迭代器中、是使用struct2的s:iterator这个迭代器。求指点,代码如下:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript">
var totalheight = 0;
function loadData()
{
totalheight = parseFloat($(window).height()) + parseFloat($(window).scrollTop());
if ($(document).height() <= totalheight)
{
//加载数据
doStart();
}
}
$(window).scroll( function() {
console.log("滚动条到顶部的垂直高度: "+$(document).scrollTop());
console.log("页面的文档高度 :"+$(document).height());
console.log('浏览器的高度:'+$(window).height());
loadData();
});
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function doStart() {
createXMLHttpRequest();
var url = "PersonInfoCenter.action";
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = gethello;
xmlHttp.send();
}
function gethello() {
if (xmlHttp.readyState == 4) {
//下面三行代码是测试的,测试从request返回的index是否能更新,结果是可以的,但是迭代器的就没思路了。
var str = "${requestScope.index}"
$("#container").append(str);
$("#container").append("dd<br/>dd<br/>dd<br/>");
}
}
</script>
</head>
<body>
<div id="container">
dd<br/>dd<br/>dd<br/>
</div>
<table id="table" width="100%" cellpadding="6" cellspacing="50" >
<!-- 循环输出 -->
<s:iterator value="#request.article" id="art">
<tr height="80">
<td bgcolor="#1582AB">
<font class="chinesefont105main"> <!-- 文章标题 -->
<div>
<!-- 发表人-->
好友:<s:property value="#art.username"/>
<!-- 发表日志 -->
发表了日志(<s:property value="#art.title"/>)
</div>
<div align="right">
时间:<s:date name="#art.date"/>
</div>
</td>
</tr>
</s:iterator>
</table>
</body>
我是使用S2SH框架的,把返回的数据保存在request.setAttribute, 求大神指点感激不尽啊
其实无非就是鼠标滑过,异步获取数据,然后局部更新对吗?
那么肯的就是使用鼠标滑过,触发ajax事件, ajax回调成功,然后使用jquery来操作dom对象。 楼主好好优化、精简下你的代码, 可以使用jquery的, 就使用jquery, 另外你要知道的是ajax回调是你的程序在它自己的线程中处理完了响应的,所以局部更新, 肯的是通过javascript来操作DOM实现局部更新,而不是struts
对的、思路就是这样的、就是对javascript不熟、所以才是导致不知道改怎么写、我先查查基本知识、
能给个思路吗、主要就是在ajax那里如何获取action的list之后在显示在界面上不了解、
他是基于java的 ssh.
@Cloud_strife: 使用js跨域处理,返回javascript,再执行
@滴答的雨(何雨泉): 我现在有个问题就是、在action中、我ajax如何获取?
var userList = eval('(' + xmlHttp.responseText + ')');
var user = eval(userList.JSONRESULT);
是上面这样的方式吗?原谅我js新手、看来得好好把基础学学、
帮顶
循环刷新数据是要用JS来做的,不能用那个S:什么的
因为是在前台
确实、js是前台、struts2是服务端、2个是不同概念、我现在的想法是在前台把list转换成Json、然后通过ajax把json解析出来、
@Cloud_strife: 通过ajax把json传到前台,你用jquery做ajax的时候,他取到的就是一个json对象,你直接for遍历然后绑到页面上就行的
@吴瑞祥: 对的、我先试试、