Всем доброго времени суток...
IE8\HTML+JS+ActiveX ; Страничка с согласия юзверя работает через объекты
ActiveX c
MS Excel и файловой системой, а пока она это делает, я хотел бы показывать некую анимацию, пусть банально менять текст в
<textarea>...
Вычитав, что о
многопоточности говорить не приходится, начал копать в сторону
асинхронности, и вот я "раскуриваю"
setTimeout/setInterval реф которых утверждает что они предназначены для асинхронного вызова функций, казалось бы "то что надо!", а нет... или я не уловил суть (хотя с асинхронностью знаком не по наслышке на серверном Node.js)
так вот...
пуcть в теле документа имеем некую функцию
myStatusBar() , она у нас занимается некой анимацией (добавляет точку к <textarea>*.value) -
setInterval(function(){myStatusBar();},500);
далее собственно запускаем наш тяжеловесный процесс работы с
Excel и файловой системой назовем его
myHeavyProcess()(это или последовательный вызов нескольких функций, или вызов одной, которая сама вызывает все последующие //PS: в средем 5-6 сек.)
вот что у нас вышло
setInterval(function(){myStatusBar();},500);
myHeavyProcess();
что ожидалось: функция
myStatusBar() будет выполняться каждые 0,5 сек. в то время как будет выполняться
myHeavyProcess()
что вышло: функция
myStatusBar() выполнится один раз, потом будет "шурупить"
myHeavyProcess() все свои 5-6 сек. без какой либо анимации, и как только она закончит опять выполнится
myStatusBar()...
Ну и какая-же это асинхронность ?