То, что вы хотите - это выполнить несколько асинхронных действий в последовательности , верно? Я бы собрал массив функций для выполнения и запустил его через хелпер последовательности.
https://github.com/michiel/asynchelper-js/blob/master/lib/sequencer.js
var actions = [];
$.each(lines, function(key, value) {
actions.push(function(callback) {
$.ajax({
url: 'process.php?id='+val,
success: function(msg) {
clearInterval(auto_refresh);
//
// Perform your DOM operations here and be sure to call the
// callback!
//
callback();
}
});
});
}
);
Как видите, мы строим массив функций с областями видимости, которые принимают произвольный обратный вызов в качестве аргумента. Секвенсор запустит их для вас.
Используйте хелпер последовательности из ссылки на github и запустите,
var sequencer = new Sequencer(actions);
sequencer.start();
Между прочим, можно определить функции секвенсора в нескольких строках кода. Например,
function sequencer(arr) {
(function() {
((arr.length != 0) && (arr.shift()(arguments.callee)));
})();
}