Javascript.RU

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

Рендеринг динамических компонентов, загружаемых через ajax
В общем задача такая: на сайте слева стоит дерево ссылок, при клике вызывается событие
itemclick: function(view,rec,item,index,eventObj){
	var rendTo = Ext.getCmp("mainpanel");
	rendTo.removeAll();
	Ext.Ajax.request({
		url: rec.get("id")+".js",
		success: function(r,o){
			rendTo.add(eval(r.responseText));
		},
		failure: function(r,o){
			rendTo.add(errorPage);
		}
	});
}

Таким образом типа создается компонент динамически из файла *.js и добавляется в mainpanel. вот пример файла a.js:
Ext.create('Ext.Panel', {
            title: 'Заголовок',
            width: 300,
            height: 200
        });

а errorPage - это компонент сообщения об ошибке
var errorPage = Ext.create("Ext.Component", {
	html: "Ошибка загрузки",
	style: "padding: 10px;"
});


Вот. А проблема в том, что загрузка компонента запаздывает на 1 нажатие. То есть я нажал на "ссылку", потом нажал на другую и только тогда грузится предыдущий. Где может быть ошибка?
И вообще какие еще пути есть для вот такой организации динамической загрузки компонентов из других файлов?
Не серчайте, изучаю ExtJS только 2-й день

Последний раз редактировалось plazzzm, 01.02.2013 в 23:05. Причина: добавил нужную строку
Ответить с цитированием
  #2 (permalink)  
Старый 01.02.2013, 23:14
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

В ExtJS4 есть же свой асинхронный загрузчик - Ext.define() Ext.requre или чета в этом духе (сам не работал с четверкой)
Для ExtJS3 нужно подключать что-то стороннее, например require.js.
Именно проблема с запооздалым рендерингом скорее всего из-за того, что add() не обновляет view компонента. Нужно наверно вызвать какой-то метод типа refresh() или наподобие. Смотрите документацию http://docs.sencha.com/ext-js/3-4/ http://docs.sencha.com/ext-js/4-1/
Ответить с цитированием
  #3 (permalink)  
Старый 01.02.2013, 23:29
Новичок на форуме
Отправить личное сообщение для plazzzm Посмотреть профиль Найти все сообщения от plazzzm
 
Регистрация: 01.02.2013
Сообщений: 5

спасибо! попробую сделать одним из ваших способов
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передать параметры через HREF в AJAX izcian Общие вопросы Javascript 5 18.08.2012 20:04
Автоматическая работа script в подгруженном через AJAX div'e rost Javascript под браузер 4 06.07.2012 21:24
кеширование HTML переданого через ajax BorisBritva jQuery 6 02.04.2011 01:23
Вызов функции печати страницы полученной через AJAX Garik AJAX и COMET 4 02.03.2011 17:05
Не та кодировка при изменении элементов DOM, загружаемых через ajax ShootNik Серверные языки и технологии 16 14.10.2010 09:55