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 回答