我希望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