Проблемы производительности 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 и общие рекомендации в разработке”
Leave a Reply
Спасибо Вам за блог, помогли решить несколько проблем!
Подписался на рсс, пожалуйста, продолжайте писать, очень перспективная для рунета тема, да и вообще - потому что в оф. доках черт ногу сломит.