繁体   English   中英

在不重新加载页面的情况下刷新php输出

[英]Refreshing the php output without realoading the page

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);

在我的情况下如何正确实施呢?

在这里查看我的答案。

在特定时间后刷新页面元素

我已经回答了有关在特定时间后如何重新加载div的问题,您可以对其进行一些调整以在一定时间间隔后继续重新加载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>

setTimeout的执行X秒后的功能...那么如果你把它递归你将永远有X秒期间的代码已被执行之后等待。 这比setInterval优先,后者每隔X秒执行一次。

考虑一下服务器何时出现滞后以及load()实际需要花费几秒钟的时间...好了,现在动画已超时一半,并且正在重新加载/淡入淡出...。

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

}

此处的关键是仅在完成的响应上调用setTimeout。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM