Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Готовность DOM

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
Pavelbeginner
Отправлено: 29 Января, 2013 - 11:21:23
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




Скажите, пожалуйста, DOM может быть готов до выполнения всех скриптов из тегов script или же DOM готов только после отработки всех скриптов. Имею ввиду не будет ли такого, что я назначу обработчик на событие ready из jquery, и когда этот обработчик вызовется, то часть скриптов ещё может не отработать до конца?
 
 Top
mullih
Отправлено: 29 Января, 2013 - 11:24:58
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Авг. 2012  


Помог: 2 раз(а)




если вы используете jquery.ready то можете быть уверенны что документ загружен и DOM готов к использованию. но сторонние ресурсы еще могут быть не подгруженны, как то скритовые файлы или картинки


-----
pro jQuery
 
 Top
esterio
Отправлено: 29 Января, 2013 - 11:29:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




redy в jQuery ето всего лишь обертка для onDOMContentLoaded(не IE) и onreadystatechange(для IE). Тоесть ето собитие когда создан DOM и с ним уже можна работать
(Добавление)
так навскидку
http://javascript[dot]ru/tutorial/ev[dot][dot][dot]domcontentloaded
 
 Top
Pavelbeginner
Отправлено: 29 Января, 2013 - 11:51:15
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




Так а скрипты все обязательно уже отрабатывают до того, как DOM готов или же DOM может быть уже готов, а скрипты ещё не отработали?
 
 Top
esterio
Отправлено: 29 Января, 2013 - 11:57:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Самым верным решением ето отрабативать скрипты как раз после ready а не до него.
Тоесть следищий код вызовет ошыбку
CODE (html):
скопировать код в буфер обмена
  1. <script language="JavaScript" type="text/javascript">
  2. document.getElementById('id1').setAttribute('href', 'soe url');
  3. </script>
  4. <a href="#" id="id1">some link</a>
 
 Top
DelphinPRO
Отправлено: 29 Января, 2013 - 12:19:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




скрипты не ждут загрузки DOM , а выполняются в порядке следования на странице, сверху вниз. Очевидно, что при асинхронных вызовах (ajax, setTimeout, setInterval) возможна ситуация, когда DOM уже готов, а скрипт еще работает.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Pavelbeginner
Отправлено: 29 Января, 2013 - 13:12:52
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




DelphinPRO пишет:
скрипты не ждут загрузки DOM , а выполняются в порядке следования на странице, сверху вниз. Очевидно, что при асинхронных вызовах (ajax, setTimeout, setInterval) возможна ситуация, когда DOM уже готов, а скрипт еще работает.
А если исчключить асинхронные вызовы? То есть браузер в этом случае прежде, чем сгенерировать событие готовности DOM выполнит все скрипты?
 
 Top
DelphinPRO
Отправлено: 29 Января, 2013 - 13:47:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Pavelbeginner пишет:
браузер в этом случае прежде, чем сгенерировать событие готовности DOM выполнит все скрипты?

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


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Pavelbeginner
Отправлено: 29 Января, 2013 - 14:01:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




DelphinPRO пишет:
а хз
мой любимый ответ, ждал его))
 
 Top
IllusionMH
Отправлено: 29 Января, 2013 - 14:37:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Pavelbeginner пишет:
мой любимый ответ, ждал его))

Ждали? Pavelbeginner, чего ж вы в спеку не заглянули?
Ппц, каждый раз, вопрос за вопросом - нет бы самому залезть в спеки(и прочее) и посмотреть. Нет! Нужно каждый раз спрашивать на форуме, а если ответ не дали, то никто ничего не знает. Почему чкто-то должен это делать за вас? Сами то хоть раз на свой вопрос без ответов написали найденный ответ?

Изучайте, тут ответ
_http://www.w3.org/html/wg/drafts/html/master/syntax.html#the-end

(Отредактировано автором: 29 Января, 2013 - 14:37:58)

 
 Top
Zuldek
Отправлено: 29 Января, 2013 - 14:43:47
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




Не очень понял о каком исполнении скриптов при неготовом DOM идет речь.
Браузер парсит код выстраивая DOM и никакой скрипт его задействующий не будет исполнятся пока не будет готов используемый в нем элемент DOM

(Отредактировано автором: 29 Января, 2013 - 14:44:49)

 
 Top
IllusionMH
Отправлено: 29 Января, 2013 - 14:45:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Zuldek пишет:
Браузер парсит код выстраивая DOM и никакой скрипт его задействующий не будет исполнятся пока не будет готово используемый в нем элемент DOM

Не будет исполнятся или просто вызовет эксепшн и пойдет дальше?
 
 Top
Zuldek
Отправлено: 29 Января, 2013 - 14:54:44
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




по стандарту должен вызвать и отрабатывать остальные, а вот как заложено будет в клиент это уже дело разработчиков клиента.

(Отредактировано автором: 29 Января, 2013 - 14:55:49)

 
 Top
DelphinPRO
Отправлено: 29 Января, 2013 - 15:58:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Zuldek пишет:
Не очень понял о каком исполнении скриптов при неготовом DOM идет речь.

я так понимаю озвученную проблему —

псевдокод:
CODE (html):
скопировать код в буфер обмена
  1. <head>
  2. <script>
  3.   $.ready(function(){
  4.     getElement(div).innerHTML += 'READY  ';
  5.   });
  6. </script>
  7. </head>
  8. <body>
  9. <div></div>
  10. <script>
  11.   ...
  12.   ... код, который долго выполняется
  13.   ...
  14.   getElement(div).innerHTML += 'OK ';
  15. </script>
  16. </body>


что будет в div: "OK READY" или "READY OK" ?


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
mullih
Отправлено: 29 Января, 2013 - 16:38:03
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Авг. 2012  


Помог: 2 раз(а)




Zuldek пишет:
Не очень понял о каком исполнении скриптов при неготовом DOM идет речь.
Браузер парсит код выстраивая DOM и никакой скрипт его задействующий не будет исполнятся пока не будет готов используемый в нем элемент DOM


Объясните почему не <div>WOW</div> если скрипты ждут готового DOM?

CODE (html):
скопировать код в буфер обмена
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. </head>
  5. <body>
  6.         <div>OOPS</div>
  7.         <script>
  8.                 getElement(div).innerHTML = 'WOW'
  9.         </script>
  10. </body>
  11. </html>

(Отредактировано автором: 29 Января, 2013 - 16:39:17)



-----
pro jQuery
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB