【发布时间】:2017-01-02 19:38:23
【问题描述】:
我希望 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而不是客户端进行计算和处理重定向
-
您的问题是 oldVar 始终为 0 而不是 oldVar 的新值吗?
-
@hokusai 感谢您的回复,不,这不是问题,我想要的只是 javascript 在对页面进行修改时刷新页面。刷新 api.php 会返回一个 json 值,每当我更改 test.php 时该值都会发生变化。我希望 javascript 每秒检查一次此页面。当它看到更改时,我希望它触发刷新。
标签: javascript php