我有一个使用休眠到mysql的webapp。如果我的数据库获取新值,则webapp可以正常工作,它们在刷新页面后立即显示在webapp上。我想摆脱我的“每五秒钟刷新整个页面”的构建,并拥有一个复选框,当激活时,tbody中的列表将单独刷新。我也在div上尝试过自动刷新,但是,是的,如果你们中有人知道这一点,请帮忙!谢谢!
代码块1(头):
<script type="text/javascript">
function auto(){setInterval(
function () { $('#doRefresh'). ????
;}, 2000); } </script>
代码块2(div 1):
<input type='button' value='UPDATE' class="btn" onclick="auto()"/>
代码块3(div 2):
<tbody id="doRefresh">
<c:forEach var="sensor" items="${listSensors}" varStatus="status">
<tr class="listData">
<td>${sensor.fileName}</td>
<td>${sensor.date}</td>
<td>${sensor.time}</td>
<td>${sensor.channel1}</td>
<td>${sensor.channel2}</td>
<td>${sensor.channel3}</td>
<td>${sensor.channel4}</td>
<td>${sensor.channel5}</td>
<td>${sensor.channel6}</td>
<td>${sensor.channel7}</td>
<td>${sensor.channel8}</td>
</tr>
</c:forEach>
</tbody>
我去过以下页面以获取启发(以及更多):
1. https://wowjava.wordpress.com/2010/02/06/auto-refreshing-the-content-
without-reloading-page-using-jquery/
2. http://www.sitepoint.com/auto-refresh-div-content-jquery-ajax/
3. http://crunchify.com/how-to-refresh-div-content-without-reloading-page-
using-jquery-and-ajax/
4. http://stackoverflow.com/questions/5987802/refreshing-only-one-div-in-
page-with-just-regular-javascript
谢谢
最佳答案
由于您已经具有可用于生成html的服务器代码,因此可以使用最简单的jQuery ajax方法load()
。
方法通过简单地传入一个url,用服务器中的新html替换选择器中的所有html。
/* within interval function */
$('#doRefresh').load('path/to/server/script', function(){
/* new html has been inserted, can run any html related code here*/
});
由于
<tbody>
不会被替换,因此仅替换行,只发送回行。否则使用$('#doRefresh').parent().load(...
保留<tbody>
参考:load() Docs