我今晚一直在网上搜索,看到了很多“解决方案”,但不幸的是没有为我工作。所以我会尝试在堆栈和其他地方得到我在这里看到的不同的答案,并希望我找到一个可以工作的...
我的页面有以下javascript位:
logbook = setInterval(function () {
$.getJSON("php/log.php", function(data) {
$.each(data.posts, function(i,data) {
$('#logspan').replaceWith(data.logupdate);
});
});
}, 5000);
当我运行该页面时,它可以工作,但只有一次然后它会完全停止间隔(这是在Chrome和Firefox中)并且基本上放弃了。
这很奇怪,因为还有另一个脚本运行如下,并且完美地完成了它的工作:
var timer;
function startCount() {
timer = setInterval(count,1000);
}
function count() {
var el = document.getElementById('counter');
var currentNumber = parseFloat(el.innerHTML);
el.innerHTML = currentNumber+1;
}
我已经尝试过看第一个脚本是否有效,如果我关闭第二个脚本,但它仍然没有去。那么,我怎样才能使第一个(JSON)脚本工作?由于这个问题,它已经过了我的睡觉时间,我还没有更进一步! 拉头发
任何建议/提示/提示都表示赞赏......
编辑:好的,我找到了一些奇特的东西,当我更换“replaceWith”并使用“appendTo”时,似乎更新#logspan就好了,但显然我不想垃圾邮件我自己的网页。也许问题出在其他地方?答案 0 :(得分:2)
同意。
由于您正在迭代JSON调用中返回的帖子,因此只清空#logspan的主体一次,然后将每个帖子的内容按顺序附加到#logspan。
var logbookTimer = setInterval(function () {
$.getJSON("php/log.php", function(data) {
// Empty out the body of the log
$('#logspan').empty();
// Add some content for each retrieved post
$.each(data.posts, function(i,d) {
$('<div>').html(d.logupdate).appendTo($('#logspan'));
});
});
},5000);
答案 1 :(得分:-1)
试试这种方式
var logbook = function () {
$.getJSON("php/log.php", function(data) {
$.each(data.posts, function(i,data) {
$('#logspan').replaceWith(data.logupdate);
});
});
};
setInterval(logbook, 1000);