Ответ 1
$.ajax({
async: false,
type: 'GET',
url: 'http://localhost/play.php',
success: function(data) {
//callback
}
});
Это должно сделать это.
Следующее script не ждет, пока $.get завершит загрузку страницы, прежде чем продолжить цикл:
$.each(data.songs, function(index, val) {
$('#nowartist')
.append('song starting');
$.get("http://localhost/play.php", function(data){
alert('done');
});
});
- объект JSON
Всем приветствуются любые идеи или комментарии.
$.ajax({
async: false,
type: 'GET',
url: 'http://localhost/play.php',
success: function(data) {
//callback
}
});
Это должно сделать это.
Если вы не хотите потенциально блокировать браузер, вы можете сделать это таким образом, который просто продолжает прослушивать песни до тех пор, пока они не будут обработаны.
function play_next(){
var song = data.songs.shift(); // Removes the first song and stores it in song
$('#nowartist').append('song starting');
$.get("http://localhost/play.php", function(ret_data){
alert('done');
if(data.songs.length) play_next(); // Call next song if more songs exist;
});
}
play_next(); // Start it off
Обратите внимание, что он изменяет массив data.songs
, удаляя элементы при обработке. Если это проблема, дублируйте массив перед запуском, чтобы удалить элементы из дублированного массива.
На стороне примечания, я предполагаю, что вы не вставляли весь свой код... прямо сейчас он загружает одну и ту же страницу для каждой песни, но ничего из элемента song
не используется для изменения запроса в любом путь.