重新加载jQuery AJAX会复制JSON输出结果
Reloading jQuery AJAX duplicates JSON output results
摘要
我正试图循环遍历一个由CORS AJAX调用返回的JSON结果。AJAX调用需要每xxx秒刷新一次,因为它是实时数据的恒定流。
代码示例
var seconds = 2000; // time in milliseconds
var reload = function() {
$.ajax({
type: "GET",
url: streamUrl,
contentType: "application/json",
cache: false,
success: function(data) {
for (var i in data) {
$("#stream").append("<div class='post'><div class='streamText'>" + data[i].keymessage + "</div>" + "<div class='streamUser'>" + data[i].username + "</div></div>")
}
setTimeout(function() {
reload();
}, seconds);
}
});
};
reload();
问题
提供的示例代码确实刷新了代码,但是,它只是将刷新的新结果与旧结果一起堆叠在以前的旧结果之上。我需要它来用新的结果刷新旧的结果。
问题示例
重新加载前的结果
Bob: Hello
Steve: Hey Bob
重新加载后的结果
Sarah: Whats up guys
Bob: Hello
Steve: Hey Bob
Bob: Hello
Steve: Hey Bob
重新加载后的结果(我需要它做什么。(
Sarah: Whats up guys
Bob: Hello
Steve: Hey Bob
试试这个:只有一行更改,但因为您正在追加它,所以只会不断追加新代码。在循环开始时,移除流id元素的内容。
这样,它可以删除以前的项目,并允许您添加新项目。当再次调用时,它将重复自身。
success: function(data) {
$("#stream").html("");
for (var i in data) {
$("#stream").append("<div class='post'><div class='streamText'>" + data[i].keymessage + "</div>" + "<div class='streamUser'>" + data[i].username + "</div></div>")
}
setTimeout(function() {
reload();
}, seconds);
}
});
相关文章:
- 如何在JS中复制JSON对象
- $.get-json数组复制
- 复制对象,然后更新 JSON 对象中的值
- 如何在 javascript 中复制 JSON 对象数组
- 尝试复制 json 数据 js 时出现类型错误
- 复制和粘贴带有转义引号的字符串化对象时的 JSON.parse 异常
- 如何复制 XMLHttpRequest for JSON.
- 如何将现有 JSON 对象数组的某些对象复制到新的 JSON 数组
- 保护原始JSON数据不被复制
- 基于密钥的JSON到JSON复制
- 正在复制/重命名JSON对象数组
- JSON对象复制自己
- 将AJAX JSON对象复制到现有的object中
- 如何添加json没有复制(包括CasperJS代码)
- 如何处理async getJSON来复制json对象
- 用javascript复制自定义json对象到剪贴板
- 我如何从模板节点复制并填充json数据,并用javascript将它们附加到文档中
- 重新加载jQuery AJAX会复制JSON输出结果
- 如何在javascript中复制JSON
- 复制JSON数组的特定元素到另一个