我有一些jquery代码,用于加载JSP Servlet生成的XML文件的内容。
这个想法是它提取信息然后显示它,同时每1秒刷新一次。
我遇到的问题是每次刷新它只是将数据添加回旧数据,所以它只是循环出相同的值:
这是我的代码:
<script>
$(document).ready(function() {
});
</script>
如何让它显示一次,然后当它刷新时,清除它自己。
由于
答案 0 :(得分:1)
将您的行$('#tidm').append($(html));
替换为$('#tidm').empty().append($(html));
答案 1 :(得分:0)
呼叫:
$('#tidm').html(''); // .empty() is slightly faster
在每个循环之前,这将清除旧的HTML
编辑: 我的初步答案只是清除html,但有些评论指出了原始问题代码中的有效性能问题。 因此,虽然原始代码的性能不是问题的主题,但我将用我认为更高效的方式更新我的答案。
我没有测试过这个,但意图应该是明确的。
$(document).ready(function() {
var $tidm = $('#tidm');
var html;
setInterval(function() {
$.get('Stocks', function(data) {
html = '';
$tidm.empty(); // using empty instead of .html('') as suggested
$(data).find('stock').each(function() {
var $stock = $(this);
var tidm = $stock.find("tidm").text();
var name = $stock.find("name").text();
var price = $stock.find("price").text();
var change = $stock.find("change").text();
html += '<p>tidm = ' + tidm + '</p>';
html += '<p>name =' + name + '</p>';
html += '<p>price = ' + price + '</p>';
html += '<p>change = ' + change + '</p>';
});
$tidm.html(html);
});
}, 1000); // 1000 milliseconds = 1 second.
});
如果可以做出任何其他改进或错误,我已在评论中告知我。