Контроль за выполнением кода

16-08-2019

У нас есть код:

func1(); func2();

Можем ли мы быть уверены, что вторая функция начнет выполняться после того, как первая полностью отработает? Рассмотрим пример:

Пример 1. У вас на сервере лежит файлик test.js

message = 'Hello world';

А функции func1 и func2 устроены таким образом, что перавя загружает файл test.js, а вторая выводит сообщение message:

function func1() { // create "script" element var scriptElement = document.createElement('script'); // specify path to source code scriptElement.setAttribute('src', 'http://www.js-magic.ru/jslib/test.js'); // set script type scriptElement.setAttribute('type','text/javascript'); // append "script" element to html > head document.getElementsByTagName('head').appendChild(scriptElement); } function func2() { alert(message); }

Тогда вызов

func1(); func2();

не даст ожидаемого результата. Мы не увидим alert

Hello world

Вместо этого произойдет ошибка, о которой большинство браузеров просто умолчат.

Все же добиться желаемого результата можно, если не сразу вызывать функцию func2, а немножко подождать:

func1(); setTimeout(func2, 100);


Смотрите также:
 Спутниковый интернет, спутниковое телевидение
 ICQ или попросту Аська
 HotLoad умер, да здраствует HotLoad
 Разработка и создание сайтов.
 Seo-конкурсов мало не бывает

Добавить комментарий:
Введите ваше имя:

Комментарий:

Защита от спама - решите пример:


Онлайн-игры для социальных сетей:

Понравились обзоры? Читайте еще!

Новые обсуждения на форуме:

Парк аттракционов "Сегодня парки отдыха практически повсеместно вытесняются тематическими парками, хотя обычно эти два определения смешивают.."
Зачем надо учиться играть в шахматы? "Шахматы долгое время считались игрой королей и аристократов.."