Асинхронная подгрузка скрипта с немедленным выполнением его кода
Всем добрый день. Хотелось бы сказать "коллеги", но я с js на большое "Вы".
Суть моего незнания такова. Есть скрипт, который грузится вместе с о страницей class.js (например) (function(window){ // Включение "строгого" режима 'use strict'; ... // Коллекция классов function Cls(){ // Объект-справочник var classes = {}; // Добавление скрипта на страницу function AddScript(p_name){ // Получение элемента-родителя var parent = document.getElementsByTagName('head')[0]; if(parent == undefined){ throw new Error('Ошибка: родительский элемент не найден.');} // Создание элемента-скрипта var script = document.createElement('script'); // Установка атрибутов script.setAttribute('type','text/javascript'); script.setAttribute('src',p_name+'.js'); // Добавление элемента-скрипта к элементу-родителю parent.appendChild(script); return; } // Добавление свойства к объекту Object.defineProperty(this,'Button',{ enumerable:false, // перечислимость configurable:false, // конфигурируемость get: function(){ // Если в справочнике нет нужного класса if(classes['Button'] == undefined){ AddScript('Button'); } // Возврат значения свойства return classes['Button']; },//get set: function(value){ }//set }); // Добавление класса в справочник this.AddClass = function(f_name,f_value){ classes[f_name] = f_value; } } window.cls = new Cls(); ... }(window)); и есть некий Button.js (function(window){ // Добавление класса window.cls.AddClass('Button',function(p_param){ // Это функция-конструктор класса }); }(window)) Ну я думаю уже многим стало понятно чего бы я хотел добиться вызовом var Button = window.cls.Button; И так же большинству и без прогона становится понятно что то чего я хочу я хрен получу, так как асинхронность. Собственно, таки, растолкуйте мне убогому (начинающему) фреймворко-писателю как мне это реализовать? Может кто видел в каких аццких кодах "динамическую догрузку модулей"? Заранее благодарен за любые комменты/ответы/"пиночки". |
bukvaG, Как Вариант:
Вызывать из концовки скрипта class.js Некий скрипт обрамление, который осуществляет подгрузку и запуск скриптов использующих библиотеку |
Не понял, что Вы хотите. Если без чего-то можно обойтись (не загружать), лучше так и поступить. Если у вас проблемы с асинхронностью, используйте функцию обратного вызова (callbalck).
|
Юзайте JSONP или если скрипт на своем домене XmlHttpRequest
|
Проблема (хотя это скорее "хотелка по незнанию") пока не решена, но я решил пока отложить ее решение. Но все равно всем спсб за комменты
|
Часовой пояс GMT +3, время: 05:14. |