Настольное приложение в ExtJS 4

Я разрабатываю какое-то приложение с «рабочим столом», ярлыками и виджетами на нем. Итак, у меня много запросов AJAX при открытии моего приложения.

Они замораживают друг друга, и Firebug показывает, что время отклика было около 170-250 мс, но в логе nginx все ответы имеют время около 50-60 мс.

Как я могу это исправить? Нужно ли мне создавать какую-то очередь или какой-то обходной путь с помощью веб-воркеров и т. д.?

Спасибо.


person Guy Fawkes    schedule 03.08.2012    source источник


Ответы (2)


Простое решение — переключиться с низкоуровневого Ajax на удаленное взаимодействие Ext.Direct. Одним из его преимуществ является пакетная обработка запросов, она встроенная и автоматическая. Почему бы не использовать его?
См. документацию: http://docs.sencha.com/ext-js/4-1/#!/guide/direct_grid_pt1

person Alex Tokarev    schedule 03.08.2012

Я лично играл с тем, что для начальной загрузки страницы есть 1 вызов ajax, который делает всю партию, а затем, когда он загружается, либо создайте фабрику хранилища, либо выясните, какие данные вы загрузили, а затем вручную опубликуйте это в хранить.

Ext.onReady(function(){   
    Ext.Ajax.request({
        url: 'page.php',
        params: {
            id: 1
        },
        success: function(response){
            var text = response.responseText;
            var json = Ext.JSON.decode(text);

            var store = Ext.data.StoreManager.lookup('myStore')
            store.add(json.myStore.records);
            // and do for whatever other stores you need to do

        }
    });
})        
person Alex    schedule 03.08.2012