Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.03.2009, 14:38
Кандидат Javascript-наук
Отправить личное сообщение для kefi Посмотреть профиль Найти все сообщения от kefi
 
Регистрация: 12.03.2009
Сообщений: 148

Порядок выполнения скриптов на странице
Может кто-нибудь объяснить, или дать хорошую ссылку на объяснение :

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

Последний раз редактировалось kefi, 13.03.2009 в 14:45.
Ответить с цитированием
  #2 (permalink)  
Старый 13.03.2009, 14:45
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сверху вниз.
Ответить с цитированием
  #3 (permalink)  
Старый 13.03.2009, 14:48
Кандидат Javascript-наук
Отправить личное сообщение для kefi Посмотреть профиль Найти все сообщения от kefi
 
Регистрация: 12.03.2009
Сообщений: 148

2 Kolyaj > Очень понятно, особенно в контексте динамической подгрузки скриптов ... Прочтите, плз, еще раз поправленный мной первый пост
Ответить с цитированием
  #4 (permalink)  
Старый 13.03.2009, 14:52
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

По порядку. Вы чего вообще услышать хотите? Как браузер встретит скрипт, так его и выполнит. Если у вас какой-то специфический случай, так протестируйте. Создайте 10 файлов с alert(1, 2, ..., 10).
Ответить с цитированием
  #5 (permalink)  
Старый 13.03.2009, 15:21
Кандидат Javascript-наук
Отправить личное сообщение для kefi Посмотреть профиль Найти все сообщения от kefi
 
Регистрация: 12.03.2009
Сообщений: 148

2 Kolyaj> Что хочу услышать , я указал в первом посте. Как браузер "встретит скрипт" - непонятно, я и хотел понять - как он "встретит", хотя слово "встретит" здесь не очень подходит.
Каждый случай можно объявить специфическим, я же хочу понять общую схему обработки динамически подгружающихся скриптов с перекрывающимися именами. Ваши слова пока никак не коснулись поставленных мной вопросов, но если Вы еще их не поняли, то лучше не отвечайте вовсе.
Ответить с цитированием
  #6 (permalink)  
Старый 13.03.2009, 15:33
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от kefi
подгружающихся скриптов с перекрывающимися именами
начнем с того что вы понимаете под именем скрипта?
имя файла?чем ответ Kolyaj меняется от этого факта?
имя глобыльных переменных?
они будут использоватся как глобальные переменные.
что вы хотите услышать?
Ответить с цитированием
  #7 (permalink)  
Старый 13.03.2009, 15:34
...
Отправить личное сообщение для Zibba Посмотреть профиль Найти все сообщения от Zibba
 
Регистрация: 13.10.2008
Сообщений: 225

Очерёдность событий и синхронизация в JavaScript
Ответить с цитированием
  #8 (permalink)  
Старый 13.03.2009, 15:52
Кандидат Javascript-наук
Отправить личное сообщение для kefi Посмотреть профиль Найти все сообщения от kefi
 
Регистрация: 12.03.2009
Сообщений: 148

[quote=Gvozd;14196]начнем с того что вы понимаете под именем скрипта? /QUOTE]
Во-первых, я нигде не говорил об имени скрипта, чтобы конкретизировать я говорил об именах переменных и функций. Но раз уж Вы упомянули, то - и имя скрипта тоже.

Например, в HEAD определены :
<SCRIPT type="text/javascript" src="global/hello.js"></SCRIPT>
<SCRIPT type="text/javascript" src="global/hello.js"></SCRIPT> - Загрузится повторно или нет ?
<SCRIPT type="text/javascript" src="/My1.js"></SCRIPT> - Если он содержит функции с теми же именами , что и в выше загруженных скриптах , то какие будут выполняться в действительности или вообще будет ошибка ? То же насчет глобальных переменных - ?

Дальше в BODY определены :
<SCRIPT type="text/javascript" src="/My2.js"></SCRIPT>

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

Может ли быть ситуация когда скритпы уже загружены(например в HEAD) , но элементы страницы , которые они обрабатывают(например элементы в BODY), еще нет ? Как в этой ситуации разобраться ?

И еще можно поставить кучу вопросов, только все они умещаются в стартовом посте этой темы и ни к чему приводить конкретные примеры, когда нужна ОБЩАЯ схема решения .
Ответить с цитированием
  #9 (permalink)  
Старый 13.03.2009, 16:03
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от kefi
Загрузится повторно или нет ?
а вы-то как думаете?
конечно загрузится.вопрос только откуда он будет грузится:с сервера по новой, или из кеша браузера.на этот вопрос уже нету тоднозначного ответа.зависит от того, как вы настроили кеширование на сервере и от браузера
Сообщение от kefi
Если он содержит функции с теми же именами , что и в выше загруженных скриптах , то какие будут выполняться в действительности или вообще будет ошибка ? То же насчет глобальных переменных - ?
по моему и тут ответ более чем очевиден
что по вашему сделает код:
a=100;
a=200;

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

Сообщение от kefi
Дальше в eval выполняется еще скрипты с теми же именами переменных, что уже загружены на странице - как будет производится разрешение имен ?
насколько я помню это зависит от браузера.
если не ошибаюсь осел ведет себя не как все остальные.
напишите небольшой тест, и проверьте

Сообщение от kefi
Может ли быть ситуация когда скритпы уже загружены(например в HEAD) , но элементы страницы , которые они обрабатывают(например элементы в BODY), еще нет ? Как в этой ситуации разобраться ?
может.
более того это одна из самых распрастраненых ошибок новичков.
сделать можно несколько вещей:
1)расположить скрипт не в теге head, а после элементов с которыми он работает
2)обернуть код в функцию, и выполнить его либо по событию window.onload, либо по таймауту

как видите ответы на почти все ваши вопросы вполне очевидны, если подумать немного.а если не уверены, то всегда можно проверить скриптом
Ответить с цитированием
  #10 (permalink)  
Старый 13.03.2009, 16:21
Профессор
Отправить личное сообщение для AzriMan Посмотреть профиль Найти все сообщения от AzriMan
 
Регистрация: 27.02.2009
Сообщений: 215

Сообщение от Gvozd Посмотреть сообщение
может.
более того это одна из самых распрастраненых ошибок новичков.
сделать можно несколько вещей:
1)расположить скрипт не в теге head, а после элементов с которыми он работает
2)обернуть код в функцию, и выполнить его либо по событию window.onload, либо по таймауту
а если воспользоваться этим советом? http://javascript.ru/optimize/perfor...ules#js_bottom

p.s. добавлю от себя. у меня страница загружается как есть. после этого выполняется ф-я, повешенная на событие onLoad, которая уже изменяет страницу как надо (это при условии если эти изменения нельзя совершить в процессе загрузки). на крайний случай (что бы пользователю не был виден процесс "изменений") я нужней элемент оборачиваю скрытым дивом, изменяю, и делаю его видимым. или, еще на крайний случай, вставляю слово "Загрузка", изменяю нужный элемент, "Загрузку" удаляю и делаю тот блок видимым
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка текста с одной страницы в форму на другой странице Dima Общие вопросы Javascript 19 22.01.2009 17:35
Скрытие текста на странице за ссылкой Vlad44 Общие вопросы Javascript 2 13.01.2009 18:02
разное время выполнения операции ropowek Events/DOM/Window 2 08.10.2008 13:27
Ссылка на якорь на странице во фрейме niculins Общие вопросы Javascript 2 24.09.2008 12:23
как отобразить в окне значения счетчика во время выполнения цикла FOR Алекс97 Общие вопросы Javascript 5 06.09.2008 10:36