Проблемы производительности extjs и общие рекомендации в разработке

extjs производительность

Особенность extjs - очень тяжелый HTML код. Причем броузер напрягается дважды. первый раз, когда все счастье собирается в DOM и второй раз, когда непосредственно выводится на экран. Как следствие - торможение интерфейса при более-менее серьезном количестве элементов. Причем это касается не только гридов и деревьев, но и форм и вообще любых элементов. Есть несколько узких мест, которые нужно стараться обходить.

1. Загрузка собственно extjs. Как ни крути, как не сжимай, а размер javascript кода плюс CSS файла это весьма серьезно.  Тем более, что кроме загрузки есть еще и инициализация.  Старайтесь по-минимуму перегружать страницы в браузере.  Постарайтесь все вынести в updatemanager.

2. Javascript это костыль и инородное тело в браузере. Помните об этом постоянно.  Невнятная реализация многопоточной схемы исполнения скрипта,  делает нежизнеспособной саму идею многопоточности в js.  Собственно это и есть  источник основных торомозов в  extjs.   Поэтому старайтесь не полагаться на автоматику не скармливайте в конструктор класса огромный JSON с вложенными JSON ветками для дочерних элементов.  Создавайте дочерние элементы явно, вызовом соответствующих конструкторов в переменные, а потом кидайте эти переменные в JSON. Это значительно ускорит генерацию элементов.

3. applyTo это зло. Используйте render , и вызывайте его тогда, когда вам нужно, а не тогда, когда великий рандом скажет.

4. Не увлекайтесь созданием сраз большого числа визулальных элементов ( гридов, окон и т. п) а затем их показом на экране по мере необходимости. Практика показывает, что приложение в котором сразу генерится 5 гридов и 3 формы  работает в 5-10 раз медленнее, чем перегрузки через updatemanager.

5. Ну и помните, что броузер одновременно может создать только два соединения. Не забывайте об этом, когда строите форму с десятком комбобоксов подгружаемых с сервера.

Comments

One Response to “Проблемы производительности extjs и общие рекомендации в разработке”

  1. Alexander Rudenko on April 18th, 2008 4:18 pm

    Спасибо Вам за блог, помогли решить несколько проблем!
    Подписался на рсс, пожалуйста, продолжайте писать, очень перспективная для рунета тема, да и вообще - потому что в оф. доках черт ногу сломит.

Leave a Reply




FireStats icon Powered by FireStats