自动刷新JavaScript代码

时间:2016-07-15 22:02:44

标签: javascript

以下是该方案: - 有一组变量 - 这些变量表明各种设备的状态 - 目标是显示一个始终更新的状态图

所以,我已经在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/

只需修改最后一行即可使其正常工作。

2 个答案:

答案 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);