Flex модули против RSL - PullRequest
       13

Flex модули против RSL

3 голосов
/ 09 июня 2010

Меня немного смущает вопрос, когда лучше использовать Flex Modules или RSL-библиотеки (в Flex 3.5).

Моя цель - разделить моюпроект в нескольких единичных проектах, поэтому я могу тестировать и работать отдельно.Предположим, у меня есть приложение Customer и приложение Vendor.У меня также есть передняя панель с двумя кнопками.Каждая кнопка запускает приложение «Клиент» или «Продавец».

Эти приложения делают разные вещи.Они также разделяют некоторые функции .as и общие компоненты.

Я понимаю, что если я сделаю основной проект (для входа пользователя и отображения первой панели) и два модуля (покупатель, поставщик), у меня должны быть всечто компоненты в моем проекте Eclipse, не так ли?

Вместо того, чтобы делать модули, я должен создать SWC для Vendor и другое для приложения Customer и вызвать из основного приложения с помощью RSL?

Итак, какой вариант больше подходит?Что вы мне посоветуете?Какие компромиссы есть у каждого варианта?

С другой стороны, это гибкое приложение интегрировано с Java через Blaze и ibatis для управления сохранением и поддерживается сервером веб-apache.Я решил также создать независимые военные файлы, чтобы сохранить эту независимость, но я думал, что это не оптимизирует гибкий код.Я прав?

Спасибо.

Ноль

Ответы [ 2 ]

3 голосов
/ 20 января 2011

Модули и RSL служат для разных целей.

RSL могут содержать код и ресурсы и загружаться в память при загрузке основного SWF-файла, как если бы они были частью одного и того же файла.

Основной целью RSL является разделение кода или ресурсов, которые могут использоваться в нескольких приложениях , чтобы веб-браузер мог его кэшировать и загружать только один раз.RSL не требуют инфраструктуры Flex и могут использоваться в любом проекте Flash / ActionScript.Вы не получаете никакого контроля над тем, как загружается RSL, и вы не можете выгрузить его.

Модули - это, по сути, внешний SWF, который может быть загружен по требованию с добавлением большого количества специфичного для Flex кода., чтобы убедиться, что функции Flex работают как положено.Например, наследование стилей и встроенные шрифты могут быть проблематичными в загруженных SWF, если они не обрабатываются правильно.Компоненты Flex UI имеют особую логику, чтобы убедиться, что эти вещи работают правильно с модулями.Модули также имеют дело с междоменными проблемами (например, вы не можете нормально получать события мыши, когда мышь находится над SWF из другого домена, но модули работают вокруг этого).

Модули загружаются по требованию, и обычно содержит представления. Основная цель модуля - отложить загрузку вида до тех пор, пока он не понадобится .Это ускоряет первоначальную загрузку приложения, и пользователь должен загружать это представление только в том случае, если он действительно хочет на него смотреть.

Модули имеют значительные накладные расходы по сравнению с простой загрузкой SWF, но вам потребуетсяиспользуйте модуль, чтобы гарантировать, что все функции Flex работают должным образом.

Модули и RSL можно оптимизировать для удаления кода, который уже включен в конкретное приложение.Тем не менее, для модулей это имеет больше смысла, поскольку в большинстве случаев он побеждает основной сценарий использования RSL, делая его пригодным для использования только с этим единственным приложением.

2 голосов
/ 11 июня 2010

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

Если у пользователя нет кэшированного RSL локально, он загружается как часть начальной загрузки приложения.

Используя Модули, вы можете отложить загрузку до того момента, когда пользователь ее запросит.

В вашем случае это звучит так, как будто вы хотите использовать комбинацию обоих.

Объявите модуль каждый для приложений Заказчика и Продавца, и загрузите соответствующий модуль только по нажатию кнопки. Это избавит вас от расходов на загрузку избыточного модуля.

Общая логика, которая разделяется между ними, может входить в RSL, который будет кэшироваться на стороне клиента и загружаться только один раз.

...