Задать вопрос
AllDecay
@AllDecay
Вечно отдыхающий.

Моментальная подгрузка информации из json. Как реализовать?

Пишу сайт для студенческого радио своего университета и наткнулся на некоторое затруднение с реализацией вывода информации о текущем треке.
В 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сек будет только напрасно сжигать трафик радиослушателей). Жду помощи)
  • Вопрос задан
  • 493 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
Denormalization
@Denormalization
$(document).ready(function(){ 
      show('getTrack.php',$('#song-title'));
      setInterval(function() { show('getTrack.php',$('#song-title')); } ,5000);
});
Ответ написан
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Во-первых, почему бы сразу напрямую не забирать из icecast данные по ссылке example.com:8000/info.xsl?
Зачем лишнюю прокладку php делать.

Во-вторых, что мешает при загрузке страницы сразу вызвать функцию show(), помимо запуска интервала?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽