Показать сообщение отдельно
  #1 (permalink)  
Старый 07.07.2008, 13:52
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Обернуть <script> в try{} catch(){}
У меня возникла интересная идея, но я почти уверен, что сделать задуманное невозможно.

JavaScript ведь однопоточный язык, вся асинхронность, в конечном итоге, реализована лишь в "внедрении" в общий поток вызовов методов и выполнения кода. Получается, что при динамическом подключении элемента <script> код, который находится в нем, тоже будет выполняться, внедряясь в общий поток. Но выполнение кода из этого скрипта будет происходить в любом месте программы? Или только по выходу из управляющих конструкций/функций? Возможно ли, например, заставить выполниться такой код внутри конструкции try-catch и словить вывод?

Если нет, то значит возможно реализовать синхронное выполнение кода из <script>, просто задерживая выполнение кода, например, в цикле, ожидая окончания загрузки тега <script>? Или код, подгруженный в элементе script вовсе будет выполняться, хоть и в общем потоке, но невзирая на локальные области видимости и управляющие конструкции?
Ответить с цитированием