Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.03.2018, 08:28
Кандидат Javascript-наук
Отправить личное сообщение для pokk Посмотреть профиль Найти все сообщения от pokk
 
Регистрация: 30.01.2014
Сообщений: 145

Загрузка JS, после DOMContentLoaded
Периодически бывает, что DOMContentLoaded загрузился быстрее, того как script.js, из за этого начинается ругань на анонимные функции в обработчике событий. Как этого можно избежать?
<script src="script.js"></script>
<link rel="stylesheet" href="style.css">  

window.addEventListener('DOMContentLoaded', function() {
 console.log("Html_DOMContentLoaded");
});


PS: точнее script.js выдает ERR_CONNECTION_REFUSED из за того что начало начинает грузиться style.css
а одном из браузеров как раз стили не загрузились как их по времени растащить ?

Последний раз редактировалось pokk, 12.03.2018 в 08:35.
Ответить с цитированием
  #2 (permalink)  
Старый 12.03.2018, 10:31
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 505

Если код именно такой, то DOMContentLoaded не может сработать раньше загрузки и выполнения скрипта со стилями. Такое возможно только при асинхронной загрузке скриптов/стилей (параметр async или defer).
Ответить с цитированием
  #3 (permalink)  
Старый 12.03.2018, 11:58
Кандидат Javascript-наук
Отправить личное сообщение для pokk Посмотреть профиль Найти все сообщения от pokk
 
Регистрация: 30.01.2014
Сообщений: 145

Белый шум, да вы правы, оказывается JS просто не выгружается
причем на разных браузерах ведет себя по разному, в одном выгружается в другом нет, в третьем CSS не выгружается.


Что за дикий таймаут в 1 секунду?
можно браузер заставить по дольше ждать?
Ответить с цитированием
  #4 (permalink)  
Старый 12.03.2018, 17:33
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от pokk Посмотреть сообщение
можно браузер заставить по дольше ждать?
можно

<script src="script.js"></script>
<link rel="stylesheet" href="style.css">  

window.addEventListener('DOMContentLoaded', function() {
setTimeout(function() {
 console.log("Html_DOMContentLoaded");
},2000);
});


но лучше искать другое решение
Ответить с цитированием
  #5 (permalink)  
Старый 12.03.2018, 18:24
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 505

pokk,
ERR_CONNECTION_REFUSED - проблема на стороне сервера, возможно веб-сервер не запущен.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Высылаемые данные для Vue JS после перезагрузки страницы pro_xaoc Библиотеки/Тулкиты/Фреймворки 1 08.11.2017 22:32
Вывод js скрипта после загрузки страницы dertovs Javascript под браузер 4 28.09.2017 14:06
Не работает js после динамической перезагрузки javaquester Элементы интерфейса 8 01.03.2014 15:18
Загрузка кода после загрузки документа jazzz13 Events/DOM/Window 3 06.06.2011 21:30
Загрузка дополнительного js кода с сервера Anonymous2008 Общие вопросы Javascript 5 20.11.2008 12:33