Здравствуйте!
Я попробовал запускать такой код, который в цикле добывает данные из компонента Joomla:
while (go == 1){
jQuery.getJSON('index.php?option=com_vm3delpics&task=fsdelete.read&format=json'
, {
data: {
... //отправляемые данные
}
})
.done(function(r) {
...
go = r.data.go;//здесь меняется условие продолжение цикла на основании данных полученных от компонента
...
})
.fail(function() {
...
})
.always(function() {
...
});
}
но в отладке увидел, что сразу после вызова jQuery.getJSON() происходит переход на следующую итерацию цикла while, дело до анализа результатов(до тела функции done) не доходит.
Хотя если я уберу обёртку цикла(строки "while (go == 1){" и "}") и вызову jQuery.getJSON() единожды, то отладчик сначала перескочит через функции done(), fail(),always(), что-то повычисляет в jquery.min.js и только потом вспоминает, что есть эти функции и выполняет их код.
Возникли вопросы:
1. Как можно объяснить, почему без цикла отладчик добирается в тело done(), а в цикле while нет?
2. И как можно сделать цикличный код рабочим?