如何在没有"窗口的情况下重新加载js。"或"位置。"

时间:2018-01-29 04:42:47

标签: javascript node.js

我正在处理一个js文件。我需要js代码每隔几秒就像新的一样运行。它不是一个网站,我不会使用" window"。如果我想单独重新加载js代码,location.reload不起作用。

我尝试了setInterval。它使用缓存内容。所以我没有得到准确的,当前的内容。如果我手动运行我的应用程序,每次运行我的应用程序时,都会获得当前内容。但是如果我使用setInterval,它只会抛出第一次加载的相同值。是否有任何npm软件包可以做到这一点或任何其他方式来做到这一点?谢谢你的帮助。

这是代码:

var PythonShell = require('python-shell');
var pyshell = new PythonShell('demo.py');
var infy =[];
infy.length = 0;
var infyTBV; // Infy Total Buy Volume
// PythonShell.run('demo.py', function (err, results) {
//   if (err) throw err;
//   console.log(results);
// });
printinfy();

setInterval(function() { infyTBVfn(); }, 10000);

setInterval(function() { printinfy(); }, 10000);

function printinfy(){
pyshell.on('message', function (message){
    var mainstring = message.toString();
    // var substring = "totalBuyQuantity";
    infy.push(mainstring);
    // console.log("Inside loop: " + infy);
    // if(infy.includes("totalBuyQuantity")){
    //   infyTBV = message; 
    // }
});
}

function infyTBVfn(){

    var sno = 0;
        infy.forEach(function(element) {
    // console.log(sno+": "+element);
        if (sno == 63){
        infyTBV = element;
        console.log("outside loop: " + infyTBV);
    }
    sno++;
});
    // console.log("Number of items in var: "+infy.length);
}

我有另一个python文件,我在那里阅读内容。我使用' printinfy'从python文件中获取数据。功能。

我将此文件命名为demo.js.当我运行节点demo.js时,它每次运行时都会提供不同的值(这就是我想要的)。但是,如果我让它使用

自动打印出值
  

setInterval(function(){infyTBVfn();},10000);

它打印的值与第一次打印时相同。

1 个答案:

答案 0 :(得分:-1)

这里最好的解决方案是在.js / .css文件名末尾添加时间戳

<script src="js/myfile.js?t=<?=time()?>" type="text/javascript"></script>

或者对于刷新Div,您可以使用此示例

setInterval(function() {
    var baseDate       = new Date(),
        seconds        = baseDate.getSeconds(),
        secondsElement = document.getElementsByClassName("seconds")[0];
    secondsElement.innerHTML = seconds;
}, 1000);
<div class="seconds"></div>