Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.06.2012, 12:40
Новичок на форуме
Отправить личное сообщение для bukvaG Посмотреть профиль Найти все сообщения от bukvaG
 
Регистрация: 09.06.2012
Сообщений: 3

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

И так же большинству и без прогона становится понятно что то чего я хочу я хрен получу, так как асинхронность.
Собственно, таки, растолкуйте мне убогому (начинающему) фреймворко-писателю как мне это реализовать? Может кто видел в каких аццких кодах "динамическую догрузку модулей"?

Заранее благодарен за любые комменты/ответы/"пиночки".
Ответить с цитированием
  #2 (permalink)  
Старый 09.06.2012, 12:47
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

bukvaG, Как Вариант:
Вызывать из концовки скрипта class.js
Некий скрипт обрамление, который осуществляет подгрузку и запуск скриптов использующих библиотеку
Ответить с цитированием
  #3 (permalink)  
Старый 09.06.2012, 13:55
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Не понял, что Вы хотите. Если без чего-то можно обойтись (не загружать), лучше так и поступить. Если у вас проблемы с асинхронностью, используйте функцию обратного вызова (callbalck).
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #4 (permalink)  
Старый 09.06.2012, 18:59
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Юзайте JSONP или если скрипт на своем домене XmlHttpRequest
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 11.06.2012, 17:55
Новичок на форуме
Отправить личное сообщение для bukvaG Посмотреть профиль Найти все сообщения от bukvaG
 
Регистрация: 09.06.2012
Сообщений: 3

Проблема (хотя это скорее "хотелка по незнанию") пока не решена, но я решил пока отложить ее решение. Но все равно всем спсб за комменты
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подгрузка скрипта связанных селектов Jude AJAX и COMET 8 16.07.2011 00:57
динамическая подгрузка скрипта jetli13 Общие вопросы Javascript 1 13.07.2010 16:15
Динамическая подгрузка скрипта format1981 Общие вопросы Javascript 7 23.10.2009 12:40