Я общаюсь с сервлетом, который изменяет и сохраняет внешний файл. Так как это занимает некоторое время, мне нужно, чтобы некоторые из моих функций javascript выполнялись последовательно, чтобы действия одной функции не мешали действиям другой функции.последовательные функциональные клавиши
Для этого я написал «последовательную» функцию, которая принимает другую функцию, которая может быть вызвана только тогда, когда для параметра busyflag установлено значение false (т. Е. Когда другой объект функции не обрабатывается одновременно). Это мой код:
var busy = false;
function sequential(action) {
while(busy)
setTimeout(function(){sequential(action);}, 10);
busy = true;
action();
setTimeout(function(){busy = false;}, 100);
}
function test1() {sequential(function() {alert("test1");});}
function test2() {sequential(function() {alert("test2");});}
И this является примером на jsFiddle. По какой-то причине этот код этот код продолжает циклироваться во втором вызове (когда функция functioncall должна ждать).
Я думаю, вы могли бы найти [deferreds] (http://api.jquery.com/category/deferred-object/) полезно ... – elclanrs