以下是该方案: - 有一组变量 - 这些变量表明各种设备的状态 - 目标是显示一个始终更新的状态图
所以,我已经在Perl中使用了一个解析器来发出JavaScript var x = 'y';
类型代码,现在我正在寻找如何让HTML或其他JavaScript自动检查这个更新“吐出“代码,而不是在第一次之后缓存它。
我见过的最接近的事情是使用“setInterval”让它执行一个函数,所以我继续将“var”语句包装在一个带有“setInterval”计时器的函数中。但这是否可靠地始终是最新的,还是缓存整个功能,具体取决于浏览器?
编辑:我目前没有使用任何图书馆或任何东西,并且不愿意 - 但如果必须,我会的。
EDIT2:终于找到了我要找的东西。 http://www.philnicholas.com/2009/05/11/reloading-your-javascript-without-reloading-your-page/
只需修改最后一行即可使其正常工作。
答案 0 :(得分:1)
您已经接近解决方案了。创建一个函数,对你用perl编写的'spit out'进行ajax调用。
function getSpitOut() {
$.ajax({
async: true,
type: "GET",
url: "spit_out.pl",
data: "x=8&y=7",
success: function(msg){
// UPDATE CHART
}
});
}
另一个定期进行ajax调用的函数:
$(document).ready(function() {
setInterval(getSpitOut, 60000); // Call getSpitOut every 60s
})
浏览器不会缓存它,因为您正在根据服务器端perl脚本更新图表。
答案 1 :(得分:0)
显然我从未关闭过它。
略有修改:“http://www.philnicholas.com/2009/05/11/reloading-your-javascript-without-reloading-your-page/”,我有:
var docHeadObj = document.getElementsByTagName("head")[0];
var dynamicScript = document.createElement("script");
dynamicScript.type = "text/javascript";
dynamicScript.src = scriptName;
docHeadObj.appendChild(dynamicScript);