0

私は現在、次のようなスクリプトを持っています、

$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()数秒ごとに更新されたかどうかを確認してから、強制的に更新する方法はありますか?

4

1 に答える 1

1

はい、できます。

ファイルのハッシュをチェックする PHP スクリプトを作成します。

echo hash_file('md5', 'sync-img/data.xmlt');

JavaScript で Variable を保存します。

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を使用できます

于 2012-08-28T14:26:49.220 に答える