Использовать ExtJs и JQuery вместе в одном приложении?
У нас есть большое приложение ExtJS (по-прежнему ExtJs 2), которое предоставляет функциональность, аналогичную Windows Explorer, на сервере Java EE. Теперь мы оцениваем реализацию новой функциональности; мы могли бы основывать эту функциональность на плагине jQuery.
Рекомендуется ли использовать jQuery и ExtJ в одном приложении? Или мне придется бороться с возникающими побочными эффектами?
4 ответа
Вам не придется иметь дело с какими-либо побочными эффектами. Единственные проблемы, с которыми я когда-либо сталкивался, это когда я пытался воздействовать на элементы, которые Extjs полагал, что их оставили в покое. Просто убедитесь, что когда вы начинаете работать с использованием jQuery, вы работаете внутри div, с которым extjs не планирует связываться. Лучший способ сделать это - унаследовать от Ext.Component и затем работать внутри предоставляемого им div. Ext ничего не делает внутри этого div, так что вы должны быть в порядке. Вы также можете использовать функцию изменения размера, если вам это необходимо, хотя в этом нет особой необходимости.
Моя компания делает это без проблем на довольно большом сайте Apache/Catalyst. Мы используем jQuery(), а не $() из-за некоторых старых прототипов на нашем сайте.
Держать jQuery в пространстве имен jQuery http://api.jquery.com/jQuery.noConflict/
Используйте это так: $.noConflict ();
jQuery добавляет только один объект (jQuery) в контекст окна, поэтому у вас не будет никаких конфликтов.
ПРОБЛЕМА. Некоторые сторонние библиотеки для jquery могут полагаться на статическую организацию веб-страниц. Поскольку компоненты ExtJS могут быть добавлены на веб-страницу динамически - они не будут иметь функций из сторонних библиотек.
РЕШЕНИЕ: Вам нужно будет запустить скрипт этой библиотеки после добавления компонента (например, использовать событие afterrender). Затем вы можете вызывать эти функции в этом компоненте ext.