Здравствуйте.
Как можно динамически подгружать компоненты из файлов на сервере? Например для пользователей с разными ролями, которым нужны разные таблицы, формы и т.п., а работают они с одной базой данных.
присоединяюсь к вопросу.
Сейчас я разруливаю на клиенте, но с т.з. безопасности это не очень хорошо.
Возможна подгрузка динамического HTML с сервера, к которому биндится webix (markup initialization: http://docs.webix.com/desktop__markup_init.html ), но слишком усложняет архитектуру, и не решает проблем с сокрытием кода
Думаю, что ответ будет “используйте Webix Jet”, но не могу его осилить)
Как я понимаю, подгрузка markup не подразумевает загрузку логики взаимодействия элементов между собой. Правильно?
Меня еще другое беспокоит, если писать достаточно большую систему, где несколько ролей пользователей и у каждой роли несколько функциональных модулей, то загрузка всего этого хозяйства клиенту будет отнимать время, память и скажется на быстродействии.
На самом деле использование Webix Jet не обязательно ( хотя он и решает эту задачу )
Можно
- сделать аякс запрос, который вернет описание интерфейса
- сделать вызов webix.ui ( или layout.addView ) которые построит этот интерфейс ( webix.ui умеет не только строить интерфейс с нуля, но может и добавлять/менять части уже построенного интерфейса )
Примерно как здесь
http://docs.webix.com/desktop__dynamic_layout.html#reloadinglayoutfromtheserver
Меня еще другое беспокоит, если писать достаточно большую систему, где несколько ролей пользователей и у каждой роли несколько функциональных модулей, то загрузка всего этого хозяйства клиенту будет отнимать время, память и скажется на быстродействии.
Тут опять можно вспомнить о webix jet который использует requireJS а значит очень легко организовать динамическую загрузку не только конфигурации но и произвольного кода.
Вообще это проблема критична только если вы делаете мобильное приложение. 1 Мегабайт кода, ужмется при передаче где то до 300кб. А это размер пары картинок в вашем приложении.
Спасибо!
Вставил компоненты с логикой в тело основного скрипта через объекты, типа
var weeklyPlanLayout = {id:“weekly-plan”,
rows:[
{ cols:[
{view:“form”, id: “wpl-form-issue”,
и т.д
При первом переключении все ок, но когда возвращаюсь во view уже использованый ранее, не отображает загружаемые данные в таблицу, хотя видно, что браузер запрос делает и получает ответ.
Вот подобие такой работы, ошибка та же:
http://webix.com/snippet/19b1003d
Нажимаем на дону кнопку - отображается одна таблица, на другую - вторая. Но если опять нажать на первую кнопку - увы… Данные не отображаются
День добрый, это известная проблема - конфиг datatable не может быть использован повторно.
Фикс уже готов и будет включен в следующую версию. Чтобы исправить все прямо сейчас, используйте webix.copy
Спасибо!