как организовать выбор 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 в голову. Буду очень рад умым советам!! |
Приношу извинения, что вписал лишний пост на форум, но за два дня поисков случайно нашел правильное слово для запроса гуглу - "Динамическая подгрузка JavaScript" и в принципе статей на указанную тему немало и результат тот самый что нужен.
Тему можно закрывать. |
Можно на стороне сервера это решать и выдавать разное содержимое скрипта. Правда тогда кэширования не будет (но раз эффекты практически не будут повторяться, то это и не актуально)
|
danik.js, Спасибо за ответ! Но на мой взгляд $.getScript отлично решил проблему. У клиента будет только маленький скрипт по рэндому эффекта и все. Запуск клиента можно и задержать на секунду другую (а то и меньше) в зависимости от канала интернета (есть еще в глубинке медленный и дорогой инет без альтернатив).
|
Часовой пояс GMT +3, время: 18:08. |