Пишу сайт для студенческого радио своего университета и наткнулся на некоторое затруднение с реализацией вывода информации о текущем треке.
В icecast реализовал вывод информации маунта в json(выглядит это так):
{
"response":
{
"name" : "Music",
"listeners" : "12",
"description" : "Description",
"title" : "Soare - all i want",
"genre" : "Ofther",
"url" : "example.com"
}
}
Посредством json_decode в php вынимаю название трека:
$status = file_get_contents("http://example.com:8000/info.xsl");
$status = json_decode($status);
$track = $status->response;
if ($track->title != null)
{
echo '<marquee behavior="scroll" scrollamount="3" direction="left">'.$track->title.'</marquee>';
} else {
echo 'Error:';
}
(Сделал сразу бегущей строкой для удобства)
И вот таким, возможно, что ужасным, кодом обновляю информацию на сайте и кидаю ее в div блок.
function show(url,block)
{
$.ajax({
url: url,
cache: false,
success: function(html){
block.html(html);
}
});
}
$(document).ready(function(){
setInterval(function() { show('getTrack.php',$('#song-title')); } ,5000);
});
Но из-за интервала в 5 секунд название трека подгружается не сразу и портит вид пустой строкой. Как можно реализовать моментальную подгрузку трек? (интервал в 1сек будет только напрасно сжигать трафик радиослушателей). Жду помощи)