我有以下javascript代码,循环浏览我服务器上的多个页面(用于数字标牌)。
此代码用于所有页面,并且(此刻)每3秒循环一次页面(请参阅超时)。但是,浏览器的内存使用率会缓慢但稳定地上升。 2小时后,它从使用的192mb变为436mb。由于这是在Raspberry pi上,只有512mb内存专用于cpu,因此不太实用。
此代码中是否有明显的内存泄漏?我自己不是专家,但由于这些东西每天运行8-12小时,我可能会说20分钟/分钟,所以+/- 9600-14400每天重新加载。更多,如果它没有关闭..
$(document).ready(function() {
versionPage = parseInt(document.getElementById("version").innerHTML);
versionServer = 0
urls = 0;
getVersion();
currentPage = getPage();
getContent();
main();
function getPage() {
page = window.location.href.split("/");
return page[page.length-1];
}
function getVersion() {
$.ajax({
url: "http://localhost/getVersion",
type: "GET",
dataType: "json",
success: function(json) {
console.log("json" + json);
versionServer = json;
if (versionServer != versionPage) {
console.log("Difference!");
}
else {
console.log("Same!");
}
},
});
}
//saves how much urls there are
function getContent() {
$.ajax({
url: "http://localhost/getContent",
type: "GET",
dataType: "json",
success: function(json) {
console.log(json);
urls = json;
},
});
}
//main function loop
function main() {
//check version every
window.setInterval(function() {
getVersion();
if(versionServer != versionPage) {
window.location.href = "http://localhost:5000/1"
}
if(urls != 1) {
nextPage =(parseInt(currentPage) % urls) + 1;
window.location.href = "http://localhost:5000/" + nextPage;
}
}, 3000);
}
});
答案 0 :(得分:1)
我不得不在评论中问你这个问题但需要“50声望”才能发表评论。
您是否尝试将代码放在外部Javascript文件中,例如“signagelooper.js”并按顺序放置您的页面。这样你的looper函数总是有一个实例在运行。如果这是你不想做的事,请纠正我。