我希望javascript在对服务器上的页面文件进行修改时刷新页面。文件更改后的刷新页面
我使用api.php(见下文)获取文件的文件修改时间并将其作为json返回。
因此,从api.php获取数据是没有问题的,但是如何将旧值与JavaScript中的新值进行比较并刷新页面(如果是这种情况)。
这是我迄今所做的:
var oldVar = 0;
setInterval(function(){
$.getJSON('api.php', function(data) {
console.log(data);
var obj = data;
var filedate = obj.filedate;
if (oldVar != filedate) {
location.reload();
};
var oldVar = filedate;
});
}, 1000); // 1 second
显然,这使得页面每秒刷新一次,但我不知道如何着手。
下面是我用来获取数据的PHP代码,我使用filemtime来检查服务器上的文件修改时间。
<?php
$filename = "test.php";
if (file_exists($filename)) {
$dateFile = date("s", filemtime($filename));
$dateOfFile = array('filedate' => "$dateFile");
echo json_encode($dateOfFile);
}
?>
我会建议做的计算和处理重定向在PHP而不是客户端 – RamRaider
是你的问题,oldVar总是0,而不是你的新值oldVar? – Hokusai
@hokusai感谢您的回复,不,这不是问题,我想要的只是在页面修改完成后刷新页面。 刷新后api.php返回一个json值,只要我做一个改变test.php就会改变。我想javascript每秒钟检查一次这个页面。当它看到一个更改时,我希望它触发刷新。 – Niels