Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Последовательность выполнения кода


Автор: Ghirik 25.9.2007, 13:12
Вот так последовательно расположены в коде две функции:
Код

      creation_img(newImage);
      processing();


Не могу отследить, такое ощущение, что функция "processing();" начинает выполняться до того как закончится создание элемента в функции "creation_img()".
Скажите, какая последовательность должна быть?

Автор: dsCode 25.9.2007, 13:36
Ghirik, вообще, теоретически, так и должны, как написаны (вот только что обсуждали эту тему с "поток(ом)/(ами)"). Все зависит, что в телах функций - если там есть setTimeout'ы, или сама функция processing() вызывается по таймауту, то может и раньше начнет.

Автор: Ghirik 25.9.2007, 13:46
Нет, таймауты не при чем.... Значит, буду разбираться дальше... Сам написал, и разобраться не могу. smile 

Автор: cruelangel 25.9.2007, 13:55
подозреваю, что первая функция создаёт картинку, а вторая сразу же пытается с ней работать, в то время как картинка ещё не загрузилась.

Автор: Ghirik 25.9.2007, 13:59
cruelangel, да, примерно так и получается... я уже где то рядом... smile 

Автор: Pokoinik 25.9.2007, 17:54
Ghirik, тогда почему бы не использовать какую-нить переменную для синхронизации, чтобы вторая функция ждала завершения первой?

Автор: Ghirik 25.9.2007, 18:07
Цитата

чтобы вторая функция ждала завершения первой? 


Я, честно говоря, не представляю как такое сделать. Разве что вызывать проверку через setInterval, но это очень кривой способ....

Автор: dsCode 25.9.2007, 19:26
Стоп-стоп-стоп =) Что, уже точно определено, что вторая функция начинает работать, пока первая еще не отработала? Или это по-прежнему "кажется"?  Полный код бы сюда - не помешало бы для анализа ;)

Автор: Ghirik 25.9.2007, 19:31
Нет-нет-нет=)
Просто так болтаем smile 
Я в принципе не знаю способов, кроме setInterval, контролировать состояние переменной.

А код, в http://forum.vingrad.ru/forum/topic-173638.html, ну, во всяком случае ссылка пока.

Добавлено через 2 минуты и 32 секунды
Я сейчас запущу веточку, с этим скриптом.
А то у меня не получается разобраться с последовательностью событий.

Автор: Pokoinik 26.9.2007, 09:10
Ghirik, не лучший способ:
Код

var syn = false;
function f1() {
     return true;
}
function f2() {
     while(!syn){}
     alert('Start')
}
syn = f1();
f2();


Еще как вариант из первой функции вызвать вторую...

Автор: Ghirik 26.9.2007, 09:28
Я "бесконечные циклы" не разу не использовал, разве на время работы цикла система не повиснет? Ведь в это же время должна идти загрузка изображения...

Автор: dsCode 26.9.2007, 10:40
Цитата(Ghirik @  26.9.2007,  09:28 Найти цитируемый пост)
разве на время работы цикла система не повиснет?

еще как повиснет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)