Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   как организовать выбор JS-файла при загрузке страниы? (https://javascript.ru/forum/css-html/43488-kak-organizovat-vybor-js-fajjla-pri-zagruzke-straniy.html)

amelinviacheslav 07.12.2013 18:45

как организовать выбор JS-файла при загрузке страниы?
 
Здравствуйте!
Прошу сразу не закидывать шапками сразу - я системный программист и с яваскриптами знакомлюсь по мере возникновения проблем - как мальчик, которого кинули в море - или учись плавать или тони.

задача появилась довольно интересная - сделать небольшое разнообразие на странице для пользователей путем выполенения небольших красотулек с частотой, например, 1 к 500 (чтоб не слишком часто и не надоело).
1. имеется 10 функций визуализации графических эффектов (например, 1 эффект - пролетает слева направо картинка птички, 2-эффект - меняется цвет заднего фона страницы и т.д.)
2. каждый эффект расположен в своем файле (например, eff1.js, eff2.js и т.д)

лирическое отступление, чтобы было понятно почему есть пункты 1 и 2 - например функции визуализации тяжелые (> 200кб) и их не 10 а 100 или 1000 (1000шт. х 200кб = 195 мб). таким образом собрать все в один файл и избавится от проблемы не получится.

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

и тут я сталкиваюсь с проблемой - я не могу выбрать нужный мне файл эффекта, чтобы использовать его на странице (я понимаю что технология яваскрипта не может использовать произвольные ресурсы когда вздумается).
Прошу небольшой помощи у знатоков языка. в какую сторону надо копать мануалы, чтобы организовать такой подход, или может уже есть элегантное решение? Одним местом чую, что надо в п.3 после второго рендома надо подгружать нужный файл, вписывать его в document и ставить в очередь на выполнение, причем подгрузку нужно попробовать организовать после построения DOMа, делать document.write в голову.

Буду очень рад умым советам!!

amelinviacheslav 07.12.2013 19:24

Приношу извинения, что вписал лишний пост на форум, но за два дня поисков случайно нашел правильное слово для запроса гуглу - "Динамическая подгрузка JavaScript" и в принципе статей на указанную тему немало и результат тот самый что нужен.
Тему можно закрывать.

danik.js 07.12.2013 20:34

Можно на стороне сервера это решать и выдавать разное содержимое скрипта. Правда тогда кэширования не будет (но раз эффекты практически не будут повторяться, то это и не актуально)

amelinviacheslav 07.12.2013 21:24

danik.js, Спасибо за ответ! Но на мой взгляд $.getScript отлично решил проблему. У клиента будет только маленький скрипт по рэндому эффекта и все. Запуск клиента можно и задержать на секунду другую (а то и меньше) в зависимости от канала интернета (есть еще в глубинке медленный и дорогой инет без альтернатив).


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