В размышлениях об интерактивности задавался мыслью как сделать удобный с точки зрения usability загрузчик файлов. Плюс подогревал интерес к механизму работы ajax загрузчика в ExtJS. Делая однажды чат и разобравшись в ограничениях браузеров, узнал, что нет возможности отправлять файл по средством объекта xmlhttprequest. Поэтому было непонятно, как ExtJS uploader отправляет файлы, как будто делает это через ajax. Работая над созданием чата, я также ознакомиться с другими ограничениями браузеров, например на количество одновременных запросов к одному домену (ограничены двумя запросами), а также со всевозможными способами обхода этого ограничения. Там же для удобства применялся iframe транспорт, который позволяет отправлять обычные POST запросы через невидимый (0 px на 0 px) iframe. После этого мне сразу стал понятен механизм работы загрузчика файлов в ExtJS. Читать далее…
Одной из главных особенностей JQuery является то, что эта библиотека позволяется вам легко подчеркнуть ваш дизайн, анимировав некоторые элементы. Речь идет об отображении элементов, их движении и изменении цветов. Первое часто используется для скрытия информации, такой например, как заголовки картинок, то есть по умолчанию они скрыты, а при наведении курсора они проявляются. Часто также этот эффект применяются для того чтобы показать информацию и рейтинг скриншота при наведении на него. Читать далее…
Схема иерархии основных классов в ExtJS. Стоит помнить, что если класс ExtJS не наследуется от Ext.Component, функция initComponent (Инициализатор компонента), не вызывается, таким образом код, который вы напишете в этой функции никогда не будет выполнен. Вызов initComponent используется при создании больших приложений методом преднастроенных классов.
ExtJS классы которые не наследуются от Ext.Component не имеют строчки this.initComponent(); в своем исходном коде.
Часто возникает ситуация при создании монолитного класса, когда необходимо внутри функции вызвать методы или свойства, главного класса. При этом область видимости удобного для этих целей this весьма ограничена. В ExtJS для такой задачи имеется очень удобное решение. Читать далее…





