Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Порядок выполнения скриптов на странице (https://javascript.ru/forum/misc/3052-poryadok-vypolneniya-skriptov-na-stranice.html)

kefi 13.03.2009 16:55

Цитата:

Сообщение от Gvozd (Сообщение 14202)
как видите ответы на почти все ваши вопросы вполне очевидны, если подумать немного.а если не уверены, то всегда можно проверить скриптом

Я думаю, что новичку это не очевидно. Как видите, УЖЕ вместо ЯСНОЙ СХЕМЫ сборки JavaScript программы на странице имеем разодранные рекомендации, требующие напряжения мозгов и тестирования для их использования . Например, решение проблемы бездубликатной подгрузки скриптов (т.е. бездубликатной загрузки внешних функций и/или самих скриптов в т.ч. предотвращения зацикливания подгрузки скриптов ) вообще пока не предлагается.
Поэтому-то я и искал подход, где бы это было максимально ясно и полно изложено.

Gvozd 13.03.2009 17:32

AzriMan,
ссылка, которую вы дали дублирует первый пункт указанный мною, и процитированный вами

kefi,
сейчас попытаюсь сформулировать все одной фразой.скорее всего это только запутает вас.
скрипты загружаются и выполняются последовательно, по очереди.
можете представить себе очередь,в которую попадают скрипты, и выходят после своего выполнения.
при добавлении новых элементов script они также попадают в конец этой очереди на равных правах.
у всех скриптов одна глобальная область видимости переменных и функций.вообще, грубо говоря функции по сути ничем не отличаюстя от прочих пременных-объектов.все глобальные функции и объекты являются свойствами объекта window.и их можно преопределять(кроме встроенных.с ними чуть сложнеее) абсолютно спокойно.то есть если вы переопределили функцию, то дальше будет выполнятся именно новый код.и переменные также будут в дальнейшем иметь новое значение
по поводу же локальных контекстов я уже давал ссылку выше.
по поводу асинхронного кода, вам также давалась ссылка выше.но в общем-тол тут также сохраняется очередь.JS-однопоточный язык с псевдомногопоточностью

kefi 09.04.2009 23:46

Цитата:

Сообщение от Gvozd
JS-однопоточный язык с псевдомногопоточностью

Вот такой возник вопрос :
Может ли быть прерван внешними событиями код выполняемой функции и в каких случаях ?

Gvozd 10.04.2009 00:02

думаю, при закрытии окна/вкладки и переходе на другую страницу.
естественно, что все эти события в таком контексте могут юыть вызваны только пользователем
собственно другим скриптом, по определению нельзя прервать

x-yuri 10.04.2009 11:49

Цитата:

Ваши слова пока никак не коснулись поставленных мной вопросов, но если Вы еще их не поняли, то лучше не отвечайте вовсе
если вы не поняли ответ, то спросите, что непонятно
самое смешное, что вам сообщили общую схему, вы говорите - не то, вам начинают рассказывать подробности, вы говорите - нужна общая схема

kefi 10.04.2009 12:57

2 x-yuri > Самое смешное то, что непонятно - Вы вообще о чем ? там человек ответил "сверху вниз", это по Вашему "общая схема" ? Да и вообще проехали уже сто лет назад, что Вы решили личностные разборки устроить ?

kefi 10.04.2009 13:01

Цитата:

Сообщение от Gvozd
думаю, при закрытии окна/вкладки и переходе на другую страницу.

Т.е.
1) выполняется код моей функции,
2) пользователь переходит на другую вкладку
3) код моей функции прерывается и, возможно, запускается код функции, повешенной на открытие той другой вкладки, он выполняется до конца, возможно изменяя объекты, над которыми трудилась моя функция
4) после чего продолжает исполняться код моей функции ?

Т.е. я хотел уточнить : javscript (или не знаю,как правильно, исполняющая среда) НЕ ГАРАНТИРУЕТ, что во время выполнения код моей функции не будет прерван и не начнет выполняться код не из моей функции( т.е. чужой код ), который может изменить объекты, с которыми работала моя функция ?

Gvozd 10.04.2009 13:30

kefi,
вы надумали много лишнего, о чем я не писал.
я писал о закрытии окна, о закрытии вкладки, о переходе на другую страницу(а не вкладку)
то есть что происходит при переходе на другую вкладку, я не знаю на самом деле.и поэтому не писал об этом
вполне возможно, что потоки в разных вкладках и самостоятельны.
точно сказать не могу


Часовой пояс GMT +3, время: 05:15.