我使用hibernate到mysql的webapp。 webapp工作正常,如果我的数据库获得新值,它们会在刷新之后立即显示在webapp 上。我想摆脱我的“刷新 - 整页 - 每五秒钟”构建,并有一个复选框,当激活时,tbody中的列表将单独刷新。我也尝试过对div的autorefresh,但是,如果你们中的任何人都知道这一点请帮忙!谢谢!
代码块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
谢谢
答案 0 :(得分:1)
由于您已经拥有可用于生成html的服务器代码,因此您可以使用最简单的jQuery ajax方法load()
。
方法只需传入一个网址,就可以用服务器中的新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