Асинхронная подгрузка скрипта с немедленным выполнением его кода
Всем добрый день. Хотелось бы сказать "коллеги", но я с 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, время: 17:53. |