За последние 24 часа нас посетили 17960 программистов и 1654 робота. Сейчас ищут 1369 программистов ...

Обертка ExtJS и производительность.

Тема в разделе "JavaScript и AJAX", создана пользователем Taris, 24 май 2008.

  1. Taris

    Taris Активный пользователь

    С нами с:
    13 май 2008
    Сообщения:
    29
    Симпатии:
    0
    Собрался мыслями и начал писать свою CMS. Выбор JavaScript фреймворка пал на небезызвестный ExtJS.
    После написания контроллера загрузки модулей возник вопрос: не сильно ли будет загружаться CPU пользователя при такой модели загрузке модулей:

    [js]
    // Функция загрузки модуля после выбора из главного меню
    function loadModule() {
    if(!Ext.get(this.moduleName)) { // Если модуль не загружен, загружаем.
    Ext.Ajax.request({
    waitMsg: 'Please wait...',
    url: '/admin/module/',
    params: {
    module: this.moduleName,
    },
    success: function(response){
    try { // Вот это место меня беспокоит :)
    eval(response.responseText);
    } catch(e) {
    Ext.MessageBox.alert('Ошибка','Невозможно загрузить модуль<br /><b>' + e + '</b>');
    }
    },
    failure: function(response){
    Ext.MessageBox.alert('Ошибка','Внутренняя ошибка приложения.');
    }
    });
    }
    }
    [/js]

    Backened:
    PHP:
    1.  
    2. function module() {
    3.         if($this->req['module']) {
    4.             $this->load->view("admin/shell/{$this->req['module']}.js");
    5.         }
    6. }
    7.  
     
  2. Ивашка

    Ивашка Активный пользователь

    С нами с:
    29 авг 2007
    Сообщения:
    96
    Симпатии:
    0
    Адрес:
    Щёкино/Тула
    Зависит от количества и содержания модулей. Два-три не слишком больших модуля проблем не вызовут, но если их будет с десяток - проще повеситься, чем работать с такой страницей. При разработке своего фреймворка я поступил следующим образом - в отладочном виде модули разбиты по отдельным файлам, подгрузка осуществляется через динамическую вставку тега script (кстати, такой метод менее ресурсоемок по сравению с eval'ом). В продакшн-версии CMS все эти модули при экспорте из SVN объединяются в один файл и пакуются YUICompressor'ом. На клиенте данный файл жестко кешируется. В результате о скорости загрузки скриптов можно забыть :)