0

php スクリプトは xml ファイルを解析し、div 内のページに出力を出力します。

<?php
$playlistUrl = 'http://url/to/playlist.xml';
$xmldata = file_get_contents($playlistUrl);

$xml = new SimpleXMLElement($xmldata);

foreach( $xml->trackList->track as $track ) {
    echo $track->title .' - '. $track->annotation .'<br>';
}
?>

AJAX メソッドを使用して、ページをリロードせずに 25 秒ごとに出力を更新したいと考えています。時間間隔を設定するコード サンプルをいくつか見つけました。

// Poll the server each 60 seconds
window.setInterval(function() 
}, 60000);

また

setInterval(function(){
SomeAjaxFunction();
}, 1000);

私の場合、これを適切に実装するにはどうすればよいですか?

4

2 に答える 2

6

ここで私の答えをチェックしてください。

特定の時間後にページ要素を更新する

特定の時間後にdivをリロードする方法について回答しました。少し調整して、一定時間後にリロードを続けることができます。

基本は次のようになります。

<div id="reload">
//your PHP code and content are here.
</div>

そしてあなたのjQueryコード。

<script>
setInterval(function() {
    $('#reload').fadeOut("slow").load('reponse.php').fadeIn("slow");
}, 10000);
</script>
于 2012-05-12T14:47:32.133 に答える
1

setTimeout は X 秒後に関数を実行します...その後、再帰的にすると、コードが実行された後、常に X 秒間待機します。これは、正確に X 秒ごとに実行される setInterval よりも優先されます。

サーバーが遅れていて、load() が実際にロードするのに数秒かかる場合を考えてみてください...まあ、アニメーションは半分タイムアウトし、リロード/フェードを再び行っています....

function loopy_function() {
    // ajax call
    // on success 
    setTimeout(loopy_function, 1000 * 10 );

}

ここで重要なのは、完了した応答でのみ setTimeout を呼び出すことです。

于 2012-05-12T15:00:16.983 に答える