Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать автозагрузчик модулей, Что-то вроде __autoload() в php5 
:(
    Опции темы
cassej
  Дата 19.10.2010, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.5.2008

Репутация: 1
Всего: 1



Пишу API для одного проекта.

Хотел организовать структуру классов JS, вроде того как это делается в php5:
Код

<?php
function __autoload($className) { 
    include_once($className.'.class.php');
}
?>


Чтобы при первом же вызове, например api.module.method();, объект api мог автоматически загрузить, если такого класса нету, из указанного места методом ajax подгрузить скрипт и создать новый объект модуля.
PM MAIL   Вверх
cassej
Дата 19.10.2010, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.5.2008

Репутация: 1
Всего: 1



 smile 
PM MAIL   Вверх
cassej
Дата 19.10.2010, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.5.2008

Репутация: 1
Всего: 1



жду возможных вариантов

Это сообщение отредактировал(а) cassej - 19.10.2010, 18:37
PM MAIL   Вверх
CruorVult
Дата 20.10.2010, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



Вот метод, как динамически подключить скрипт:
function import(src){
    var scriptElem = document.createElement('script');
    scriptElem.setAttribute('src',src);
    scriptElem.setAttribute('type','text/javascript');
    document.getElementsByTagName('head')[0].appendChild(scriptElem);
}
[/code]

PM MAIL Skype   Вверх
cassej
Дата 20.10.2010, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.5.2008

Репутация: 1
Всего: 1



Цитата(CruorVult @ 20.10.2010,  08:08)
Вот метод, как динамически подключить скрипт:
Код

function import(src){
    var scriptElem = document.createElement('script');
    scriptElem.setAttribute('src',src);
    scriptElem.setAttribute('type','text/javascript');
    document.getElementsByTagName('head')[0].appendChild(scriptElem);
}

Не совсем то что нужно, но и это тоже пригодилось, только в другом месте.

Вот примерно что я пытаюсь сделать:
Код

function tcl(){
    this.loadModule=function(module){
        try{
            eval('this.'+module+'=new '+module+'();');
        }
        catch (err){
            if (err.name=='ReferenceError'){
                //а вот тут надо динамически загрузить файл скрипта,
                //при этом надо приостановить на этом моменте до загрузки скрипта все остальное
                                eval('this.'+module+'=new '+module+'();');
            }
        }
    }
}


Проблема в том, что если я вручную вставил в html подключение файла, например:
Код

<head>
        <script type="text/javascript" src="tcl.js"></script>
        <script type="text/javascript" src="api.js"></script>
</head>


то все нормально и когда я делаю:
Код

for (a in tcl.api) document.write(a+"<br>");

он выводит мне все объекты внутри api, а вот если вручную не подключаю, то даже если он и подгружает ее, то код все равно не работает
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0478 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.