Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Динамическая загрузка скриптов (https://javascript.ru/forum/misc/37397-dinamicheskaya-zagruzka-skriptov.html)

demoniqus 18.04.2013 12:17

Динамическая загрузка скриптов
 
Столкнулся со следующей проблемой. На странице подключается множество скриптов, в т.ч. jQuery и различные "производные" на его основе (jqGrid, Datepicker и т.д.). Сама страница является как бы набором закладок с разными возможностями.
Если запускать страницу обычным способом, то из-за большого количества скриптов она грузится долго, но зато все скрипты выполняются поочередно и каждый следующий скрипт уже имеет от предыдущих все, что ему необходимо.
В связи с тяжестью я решил разделить страницу. Сам набор закладок останется. Но при клике на закладку должно подгружаться необходимое содержимое. Механизм следующий: я запрашиваю список ресурсов, которые нужны для страницы, потом в javascript создаю style или javascript-элементы, пихаю их на страницу и задаю им адрес. Отследить, что файл со скриптом загрузился, я могу - все скрипты адресуются на php-метод, который в конец каждого запрошенного скрипта ставит маркер. А вот отследить то, что что этот файл отработал и создал все необходимые переменные перед загрузкой следующего - это и есть проблема... В частности при загрузке Datepicker то успевает отработать настройка локализации, то не успевает. Переделывать плагин - не вариант. Как-то можно гарантированно узнать, что файл полностью готов? Ведь браузер же как-то справляется с этой задачей!

Aetae 18.04.2013 12:39

Олдскул: поместить скрипты по порядку в самый конец страницы и не мучаться. =)

demoniqus 18.04.2013 12:50

Разницы большой нет в том, куда их впихнуть - в начало страницы или в конец, т.к. страница без этих скриптов, как патрон без пули и пороха... вроде что-то есть, но нахрен оно надо?)))))

vflash 18.04.2013 12:58

какой размер всех файлов в сумме ?

demoniqus 18.04.2013 13:11

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

Aetae 18.04.2013 13:14


Aetae 18.04.2013 13:26

demoniqus, я просто оставлю это здесь, а вы всё-таки подумайте над своим подходом.

vflash 18.04.2013 15:11

объедините все файлы в один , ужмите (к примеру через UglifyJS ) , gzip .
может в вашем случаи этого будет достаточно

если возможно укажите ссылку страницу

Ervin 18.04.2013 15:35

http://requirejs.org/

vflash 18.04.2013 15:56

Ervin,
"не зная брода не суйся в воду"

Ervin 18.04.2013 18:15

Цитата:

Сообщение от vflash (Сообщение 246905)
Ervin,
"не зная брода не суйся в воду"

Спасибо "Профессор" =))) Мой тебе совет - http://www.proklondike.com/books/jav...java4kids.html
Не javascript но тебе сойдет =)

http://www.bennadel.com/blog/2402-La...-Requested.htm
http://stackoverflow.com/questions/1...with-requirejs

vflash 18.04.2013 19:11

Ervin,
и причем тут казалось бы java

AMD требует модификации кода. demoniqus как рас и написал что не желает переделывать плагины.

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

Ervin 18.04.2013 19:50

ОФФТОПИК
При том что, как ты можешь судить о моих знаниях по 21 символу ?

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

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

Такое поведение людей, безусловно злит меня, и других людей когда они попадают в схожие ситуации.

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

Совет на будущие, хочешь помочь - помоги, а хочешь поучить, пиши приватное сообщение чтобы человеку было не обидно.


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