- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
kruto, во-первых, JS выполняется последовательно! пока не закончится выполнение одной операции, следующая не будет выполняться!
в моем коде функции будут выполняться последовательно, одна за другой, и вызвать любую из этих функций можно из любого места в любой последовательности в данном случае вызывается только func8()
burunduk, попробуйте запустить Ваш пример. Если бы ф-ции выплнялись последовательно, то в окошке бы с интервалом в 4с изменялись цифры от 1 до 7, а на самом деле выполняются все ф-ции одновременно и сразу устанавливается цифра 7.
kruto, Вы пишете чепуху. Выполняются функции последовательно, это аксиома. Параллельно - только при использовании AJAX и только в некоторых браузерах. Перепишите свой пример:
function func2(){setTimeout("document.form1.text1.value+='2'",4000);}
function func3(){setTimeout("document.form1.text1.value+='3'",4000);}
function func4(){setTimeout("document.form1.text1.value+='4'",4000);}
function func5(){setTimeout("document.form1.text1.value+='5'",4000);}
function func6(){setTimeout("document.form1.text1.value+='6'",4000);}
function func7(){setTimeout("document.form1.text1.value+='7'",4000);}
Pilat, почему тогда в этом примере /ru/forum/comment/2973979 следующая функция не дожидается выполнения предыдущей?
kruto, добавте в код value+ как Вам предложил Pilat,
и увидите что все делается последовательно
Да тут понятно, что будет нормально, но только потаму, что следующая функция использует значения установленные предыдущей функцией. Если эти значения уже заданы, то слеующая функция не дожидается окончания выполнения предыдущей. Или я не прав?
kruto добавил 02.03.2008 в 21:22
вот что у меня на самом деле:
function set_shablon_gotovinomer(){
document.getElementById('css').href = shablon_name;
setTimeout("document.getElementById('organization').innerHTML=Object['text_organization'];",2000);
document.getElementById("logo").style.display="";
}
функция выполняет замену файла "css", записывает текст в "organization" и изменяет атрибут для "logo".
Так вот если я убираю таймаут, то при вызове этой ф-ции IE часто зависает, я так полагаю из-за того, что не успел окончательно замениться файл. Однако на более медленном интернете и таким таймаутом виснет. А на локально испоользовании вообще не висет даже без таймаута.
Так вот как мне перейти к выполнению 2-й и 3-й строчки функции только после завершения выполнения первой.
kruto,
функция выполняет замену файла "css"
document.getElementById('css').href = shablon_name; - обращается не к файлу css, а к элементу с ID="css"
ну этот Id у меня на <link id="css" href="shablon_101.css" rel="stylesheet" type="text/css" />
понятно, что я в скрипте заменяю только отрибут href, но после этого выполняется загрузка файла, в этом css файле используются бэкграунды и эта загрузка занимает время.
Так вот если следующее действие выполняется до окончательой загрузки всего этого, то IE виснет. Вариант с таймаутом мне не нравится тем, что на медленном интернете все равно ожет не успеть все загрузиться, а на быстром лишние задержки
тем не менее всем спасибо, кто отозвался
kruto, попробуйте обрабатывать события ,
Вы знаете какое изображение должно загрузиться последним? вот его загрузку и отслеживаете или как вариант предварительная загрузка всей графики при загрузке страницы
Pilat, почему тогда в этом примере /ru/forum/comment/2973979 следующая функция не дожидается выполнения предыдущей?
Я понял, кажется, что Вам на самом деле нужно.
Не связывайтесь с заменой CSS - столько возни будет, потом с загрузкой бакграундов... Это не к JavaScript'у отношение имеет, скорее к рендеру конкретного браузера.
Pilat добавил 03.03.2008 в 02:09
setTimeout("document.getElementById('organization').innerHTML=Object['text_organization'];",2000);
А что это за Object ?