【发布时间】:2015-07-18 11:16:47
【问题描述】:
我的电视上有一个仪表板,页面需要每秒刷新一次。
在页面底部我有:
function startRefresh() {
$.get('', function(data) {
var newDoc = document.open("text/html", "replace");
newDoc.write(data);
newDoc.close();
});
}
$(function() {
setTimeout(startRefresh,1000);
});
这很好用,只是每次页面加载都会导致内存使用率上升,正如chrome://memory-redirect/ 所报告的那样。
有没有办法解决这个问题?我没有兴趣为 DIV 创建单独的页面并重新加载该部分。
仅供参考的 http 标头刷新和 document.location = document.location 都产生了不可用的闪烁
【问题讨论】:
-
可能是一个错误。你在其他浏览器上试过了吗?
-
我试过你的示例,startRefresh 函数只运行一次
-
我的猜测是事件调度程序会堆积处理程序,而不会将窗口对象与文档重置一起转储。在任何情况下,我都会避免文档写入并使用 iframe。 iframe 将为您提供真正的重新加载。它会有相同的闪烁到白色的问题,但是因为您在 iframe 中,所以您可以利用 css 并使用 css-tricks.com/prevent-white-flash-iframe 解决它您还可以在屏幕外排队 iframe,以便在您的 TV 应用中进行更有趣的过渡。
标签: javascript jquery html memory-leaks