只刷新一个div

时间:2015-03-04 22:51:50

标签: javascript jquery ajax jsp

我使用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

谢谢

1 个答案:

答案 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