我目前有一个看起来像这样的脚本,
$doc = new DOMDocument();
$doc->load( 'sync-img/data.xml' );
$user1 = $doc->getElementsByTagName( "user1" )->item(0)->nodeValue;
$user2 = $doc->getElementsByTagName( "user2" )->item(0)->nodeValue;
$user3 = $doc->getElementsByTagName( "user3" )->item(0)->nodeValue;
$user4 = $doc->getElementsByTagName( "user4" )->item(0)->nodeValue;
$user5 = $doc->getElementsByTagName( "user5" )->item(0)->nodeValue;
$user6 = $doc->getElementsByTagName( "user6" )->item(0)->nodeValue;
当XML文件获取新数据时,它希望脚本或页面刷新。有没有办法将$doc->load()
部分放入循环并检查它是否每隔几秒更新一次,然后强制刷新?
答案 0 :(得分:1)
是的,你可以。
创建一个检查文件Hash的PHP脚本。
echo hash_file('md5', 'sync-img/data.xmlt');
在JavaScript上存储一个变量:
xmlHash = '<?php echo hash_file('md5', 'sync-img/data.xmlt');?>';
定期检查 xmlHash 是否已更改:
$(document).ready(function(){
checkHash();
});
function checkHash()
{
$.get('/get_xml_hash.php', function(data) {
var newHash = data;
if(newHash != xmlHash)
location.reload();
});
setTimeout("checkHash()",8000);
}
或者您可以使用HTML5 Server-Sent Events