2017-02-06 17 views
-1

у меня есть 3 файлов я отношусь к ним, как:Javascript включаемого файла и обновляется каждые 30 секунд

 $nowplaying = file_get_contents("/api/static/nowplaying"); 
$dj = file_get_contents("/api/static/dj"); 
$listeners = file_get_contents("/api/static/listeners"); 

Я хочу называть их в моем файле PHP внутри Div тегов с помощью

'.$dj.' 
'.$nowplaying.' 
'.$listeners.' 

но содержимое файлов, которые я обновляю каждые 30 секунд, поэтому мне нужно обновить данные, не обновляя страницу. Я думаю, что jquery jquery может быть тем, но я не слишком хорошо знаком с ним.

Большое спасибо!

+0

Ознакомьтесь с [ 'setInterval()'] (https://www.sitepoint.com/setinterval-example/) –

+0

Это может сделайте ajax. Вы можете использовать jquery точно - материал для изучения здесь: http://api.jquery.com/?s=ajax –

ответ

0

Если у вас есть JQuery

setInterval(function(){ 
    $.get("/api/static/nowplaying",function(data){ 
     // Do something with data 
    }); 
},30000); 

с JavaScript вроде как

var request = new XMLHttpRequest(); 
setInterval(function(){ 
    request.open('GET', '/api/static/nowplaying', true); 
    request.send(); 
},30000) 

request.onload = function() { 
    if (request.status >= 200 && request.status < 400) { 
     // Success! 
     var data = request.responseText; 
    } else { 
    // We reached our target server, but it returned an error 

    } 
}; 
0

Да, я думаю, с помощью JQuery/JavaScript является то, что вы ищете, и его довольно просто. Просто используйте метод setInterval() в JavaScript, чтобы он неоднократно запускал функцию по расписанию. Поскольку вы довольно новичок в этом, я попытаюсь сделать простой пример. Ниже приведен код updateDiv() каждые 30 секунд.

<script type="text/javascript" src="//code.jquery.com/jquery-3.1.1.js"> 
</script> 
    <script type='text/javascript'> 

var myVar 
function updateDiv(){ 
    clearInterval(myVar); 

    alert('your code should go here'); 

    myVar = setInterval("updateDiv()", 30000); 
} 
$(document).ready(function(){ 
    myVar = setInterval("updateDiv()", 30000); 
}); 

Вы можете посмотреть это здесь: https://jsfiddle.net/jglazer63/h6q20dj9/1/

+0

Если вы собираетесь очистить и установить интервал для каждого вызова, вам было бы лучше просто использовать 'setTimeout 'который срабатывает только один раз. Это означает, что вам не нужно очищать, просто установите другой тайм-аут в конце. Кроме того, все это нужно было бы сделать, только если вы не смогли закончить обработку до того, как наступит следующий интервал. Если у вас есть обработка, которая занимает больше 30 секунд (количество интервалов), я бы предложил рефакторинг ее каким-то образом. –

+0

Да все еще борется с этим. Пробовал все вышеперечисленное внутри

и еще ничего! :( –

+0

Это javascript. Он должен находиться между тегами в верхней части страницы и должен иметь до и после него. Вы сделали это? Я добавлю его для ясности .... –

 Смежные вопросы

  • Нет связанных вопросов^_^