Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript Frameworks && Business applications / 25 сообщений из 26, страница 1 из 2
16.01.2014, 12:10
    #38527982
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
Стоит задача реализовать single-page бизнес-приложение. Есть опыт разработки на ExtJS. В нем все устраивает, практически, все (за исключением пары-тройки ньюансов). Но ЭстЪ один довольно-таки довольно существенный недостаток - медлительность. Понятное дело - всяческие-разные обзоры/сравнялки читал. Но хотелось бы услышать, так сказать, мнение от людей действительно реализовавших/реализующих реальные бизнес-приложения. В общем: хочется что-то наподобие ExtJS'а, но пошустрее (понятное дело часть плюшек идет лесом в угоду скорости).
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.01.2014, 12:35
    #38528038
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
Я делал одно и то же реальное single-page бизнес-приложение на Ext и jEasyUI, Ext оказался гораздо быстрее, и неудобств неотзывчивостью не доставил.

Как-то я не прочувствовал его медлительность. Либо это зависит от того, с чем сравнивать, либо важную роль играет архитектура интерфейса.
...
Рейтинг: 0 / 0
16.01.2014, 12:48
    #38528065
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
On 16.01.2014 11:35 am, Antonariy wrote:
> либо важную роль играет архитектура интерфейса.

Да... Человек был разбалован/извращен DevExpress'ом в десктопном приложении и всячески пытался перетащить/заставить реализовать все 1:1... Я, конечно, отбивался изо всех сил, но в некоторых случаях так зажали пальцы в двери, что пришлось реализовать... Может это и поспособствовало тормознутости... Но, все равно, хотелось бы, все-таки, услышать альтернативные варианты...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.01.2014, 13:29
    #38528156
Dmitry Eliseev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
YUI ?
...
Рейтинг: 0 / 0
16.01.2014, 13:32
    #38528160
Dmitry Eliseev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
+ можно реюзать код для десктопного приложения, чтобы было 100% 1 в 1
...
Рейтинг: 0 / 0
16.01.2014, 13:51
    #38528205
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
On 16.01.2014 12:29 pm, Dmitry Eliseev wrote:
> YUI
Пробовали... Слишком низкоуровнево... Хотелось бы не опускаться... Просто тупо гнать функционал не отвлекаясь на остальное...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.01.2014, 13:53
    #38528206
Dmitry Eliseev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
Ex_SoftOn 16.01.2014 12:29 pm, Dmitry Eliseev wrote:
> YUI
Пробовали... Слишком низкоуровнево... Хотелось бы не опускаться... Просто тупо гнать функционал не отвлекаясь на остальное...
_________________
"Helo, word!" - 17 errors 56 warnings

Странно. Что там низкоуровнего ?
Если своих виджетов писать не нужно, то пишется только бизнес-логика...
Может не то пробовали ?
...
Рейтинг: 0 / 0
18.02.2014, 07:38
    #38563846
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
On 01/16/2014 12:53 PM, Dmitry Eliseev wrote:
> Если своих виджетов писать не нужно, то пишется только бизнес-логика...
> Может не то пробовали ?
Пробовали это

Обратили свой взор на Kendo . На первый взгляд - все круть. Но, что насторожило: все examples/demo - пендюльки/пиптики only. Чего-то цельного/монолитного а-ля такое - не обнаружили. Во-вторых: насторожило наличие присутствия контента в <body>. Они что за нас "...пальцы загибать не будут..." ( c )? Кто-нить работал с сим "...чудом враждебной техники..."? Можете дать объективную оценку? Тынць на какое-нить цельное приложение - крайне пприветствуется.
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.02.2014, 09:58
    #38563971
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
Ex_Soft Во-вторых: насторожило наличие присутствия контента в <body>. Они что за нас "...пальцы загибать не будут..."Ну так и в Ext никто за нас пальцы не загибает. Прототип интерфейса в виде json/js или в виде html — разница небольшая, причем в пользу html. В кендо html-прототип находится в естественной среде обитания, что позволяет удобно им манипулировать, а Ext, если хочешь индивидуальности побольше, чем предлагают стандартные виджеты и темы, может потребовать вкорячивания кусков текстов разметки в поля объектов. Впрочем, и там есть какой-то template.
Но вот такие крипторасширения html мне не нравятся: <span data-bind="text: cart.contentsCount">. Всегда можно обойтись без них.
...
Рейтинг: 0 / 0
18.02.2014, 11:35
    #38564169
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
On 18.02.2014 8:58 am, Antonariy wrote:
> Ну так и в Ext никто за нас пальцы не загибает. Прототип интерфейса в виде json/js или в виде html — разница небольшая, причем в пользу html. В кендо html-прототип находится в естественной среде обитания, что позволяет удобно им манипулировать, а Ext, если хочешь индивидуальности побольше, чем предлагают стандартные виджеты и темы, может потребовать вкорячивания кусков текстов разметки в поля объектов. Впрочем, и там есть какой-то template.
> Но вот такие крипторасширения html мне не нравятся: <span data-bind="text: cart.contentsCount">. Всегда можно обойтись без них.
Ну что вам сказать... У меня всегда в Ext'ах <body> было девственно пусто ;) Индивидуальность - нафик не нужна (бабе Вале с Хацапетовки она "...и даром не нать!.." (c)). Все д.б. по военному просто. Переносим WinApp в вэб. А юзание html'я, опять же в контексте Ext'ов, для меня выглядит как юзание ассемблерных вставок в плюсах. "...Было время - был я молод..." тоже таким грешил ;) Но по большому счету "...для форсу бандитского...", а не по нагальній надобности... Вот отсюда и мое недоумение... Типо ж Kendo позиционируется как полноценный фреймворк, а тут - просто набор рюшечек... Шо попало, одним словом... Или я еще не научился их готовить... Ссылочка на нормальное бизнес-приложение на Kendo - было бы очень кстати...

_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.02.2014, 12:32
    #38564274
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
Ex_Soft а тут - просто набор рюшечек... Шо попало, одним словом...Кендо сделано на jquery, а jquery это как раз инструмент для управления рюшечками :) Основная стратегия его применения — натравить на существующую разметку и дать ей джазу. Мало шансов, что какой-нибудь jquery-фреймворк сможет избежать инерции такой стратегии. Если хочется кендо и пустое body, то каркас приложения, генерящий разметку под кендовкие виджеты, придется прогать самостоятельно. Я так делал при использовании jEasy UI:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
class BTDesktop {

    Windows: DWindow[];
    Container: string;
    modalCount: number;

    constructor (Container: string) {
        this.Container = Container;
        this.Windows = [];
        this.modalCount = 0;
    }

    private countModal(): number {
        var notAll: boolean;
        for (var x = 0; x < this.Windows.length; x++)if (!this.Windows[x].closed && !this.Windows[x].isTab) notAll = true;
        if (!notAll) this.modalCount = 0;
        return this.modalCount;
    }

    private getFreeIndex() {
        for (var x = 0; x < this.Windows.length; x++) if (this.Windows[x].closed) return x;
        return -1;
    }

    private cleanup(mWindow:DWindow): void {
        mWindow.closed = true;
        mWindow.grid = null;
        mWindow.opener = null;
        mWindow.options = null;
        mWindow.url = null;
        mWindow.xhr = null;
        mWindow.dataGrids = [];
        for (var x in mWindow.ckeditors) mWindow.ckeditors[x].ckeditorGet().destroy(true);
        for (var x in mWindow.menudivs) mWindow.menudivs[x].remove();
        mWindow.ckeditors = [];
        mWindow.menudivs = [];
        mWindow.subdataToolButtons = [];
        mWindow.toolbarFunc = [];
        mWindow.formTabs = [];
        mWindow.selectors = new Object();
        mWindow.container = null;
        mWindow.controls = null;
        mWindow.toolbox = null;
        mWindow.activeDataIndex = -1;
    }
    
    private createWindow(url: string, opener:DWindow, callback) {
        var mDesk: BTDesktop = this;
        var mWindow: DWindow, lIndex: number = this.getFreeIndex();
        if (lIndex < 0) {
            mWindow = new DWindow();
            mWindow.index = this.Windows.length;
            this.Windows.push(mWindow);
        } else {
            mWindow = this.Windows[lIndex]
        }
        mWindow.xhr = GetAjax(url, function (opts: Response) {
            mWindow.url = url;
            mWindow.closed = false;
            mWindow.opener = opener;
            mWindow.options = opts;
            mWindow.toolbox =$("<div class='div_toolbar'/>");
            mWindow.container = $("<div class='div_data'/>").attr("windowIndex",mWindow.index);
            mWindow.controls = $("<div class='div_controls'/>");
            mWindow.controls.append(createButton({
                iconCls: 'icon-cancel', text: app_ru.close,
                onclick: function () { mWindow.close() } 
            }, "linkbutton"));
            callback(mWindow, opts);
        });
    }

    private createDialog(url: string, opener: DWindow, callback) {
        var mDesk: BTDesktop = this;
        this.modalCount++;
        this.createWindow(url, opener, function (mWindow:DWindow, opts:Response) {
            mWindow.isTab = false;
            mWindow.controls.addClass("dlg");
            mWindow.container.addClass("dlg");
            mWindow.toolbox.addClass("dlg");
            mWindow.viewport = $("<div/>").append(
                mWindow.toolbox).append(
                mWindow.container).append(
                mWindow.controls).dialog({
                    width: opts.dialogWidth?opts.dialogWidth:screen.availWidth*2/3,
                    height: opts.dialogHeight?opts.dialogHeight:768,
                    title: opts.dialogTitle,
                    modal: true,
                    collapsible: false,
                    maximizable: false,
                    minimizable: false,
                    onClose: function () {
                        mDesk.cleanup(mWindow);
                        mWindow.viewport.parent().next().remove();
                        mWindow.viewport.parent().next().remove();
                        mWindow.viewport.parent().remove();
                    }
            }).attr("idValue", opts.idValue);
            callback(mWindow, opts);
            mWindow.ckeditors = createNewControls(mWindow.btn_save,mWindow.container);
        });
    }

    private createTab(url: string, opener: DWindow, callback) {
        var mDesk: BTDesktop = this, $tabs = $("#tt");
        for (var x = 0; x < this.Windows.length; x++) {
            var mWin = this.Windows[x];
            if (!mWin.closed && mWin.url == url) {
                var tabs = $tabs.tabs("tabs");
                for (var i = 0; i < tabs.length; i++) {
                    if (tabs[i].attr("id") == mWin.container.attr("id")) {
                        $tabs.tabs("select",i);
                        return
                    }
                }
                return;
            }
        }
        this.createWindow(url, opener, function (mWindow:DWindow, opts:Response) {
            mWindow.isTab = true;
            mWindow.container.attr("id", createId(opts, "list"));
            var tabIndex = $tabs.tabs("tabs").length, rs = opts.rowset;
            var sTitle = opts.dialogTitle ? (opts.dialogTitle + app_ru.longDash) : "";
            var pkValue = rs.rows.length > 0 ? parseInt(rs.rows[0][Sys(opts.webitem).PrimaryKey]) : null;
            var objName = rs.rows.length > 0 ? (rs.rows[0][opts.nameField] || rs.rows[0].Name) : null;
            objName = objName && (objName.Name || objName);
            objName = objName ? (app_ru.lQuote + (objName.length <= 25 ? objName : objName.substr(0, 10) + " ... " + objName.substr(objName.length - 10, 10)) + app_ru.rQuote) : "<без имени>";
            $tabs.tabs("add", {
                closable: true,
                title: (opts.wcecommand=="PAGE"||opts.wcecommand=="FIND"||opts.wcecommand=="GOTO")?
                    opts.dialogTitle : (sTitle + (rs.total ? (pkValue ? objName : app_ru.newRecord) : app_ru.newRecord)),
                id: mWindow.container.attr("id")
            });
            mWindow.viewport= $("#" + mWindow.container.attr("id"), $tabs);
            mWindow.viewport.append(mWindow.toolbox).append(mWindow.container).append(mWindow.controls);
            //mWindow.container = $("#" + mWindow.container.attr("id"),$tabs);
            var $pan = $tabs.tabs("getTab", tabIndex);
            var pOpts = $pan.panel("options");
            pOpts.onBeforeDestroy = function () { mDesk.cleanup(mWindow); return true; }
            $pan.panel("options", pOpts);
            var $btn_save = callback(mWindow, opts);
            mWindow.ckeditors = createNewControls($btn_save);
        });
    }
        
    createFormTab(url: string, opener: DWindow) {
        if(this.countModal()>0)return;
        this.createTab(url, opener, function (mWindow: DWindow, opts: Response) { 
            return mWindow.createForm(opts);
        })
    }
    
    createListTab(url: string, opener: DWindow) {
        if(this.countModal()>0)return;
        this.createTab(url, opener, function (mWindow: DWindow, opts: Response) {
            mWindow.createList(opts);
        });
    }

    createFormDialog(url: string, opener: DWindow): void {
        this.createDialog(url, opener, function (mWindow: DWindow, opts: Response) { 
            return mWindow.createForm(opts);
        })
    }

    createListDialog(url: string, opener: DWindow) {
        this.createDialog(url, opener, function (mWindow: DWindow, opts: Response) {
            mWindow.createList(opts);
        });
    }
    
    createListSelector(url: string, opener: DWindow, targetField:any) {
        if (!targetField) {
            alert(app_ru.noTargetField + opener.options.webitem);
            return
        }
        this.createDialog(url, opener, function (mWindow: DWindow, opts: Response) {
            mWindow.createSelector(opts, targetField);
        });
    }

    createMultiSelector(url: string, opener: DWindow) {
        this.createDialog(url, opener, function (mWindow: DWindow, opts: Response) {
            mWindow.createMultiSelector(opts);
        });
    }
}

Desktop = new BTDesktop("desktop");

Это примерно 25% "фреймворка".
...
Рейтинг: 0 / 0
18.02.2014, 13:19
    #38564405
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
On 18.02.2014 11:32 am, Antonariy wrote:
> Если хочется кендо и пустое body, то каркас приложения, генерящий разметку под кендовкие виджеты, придется прогать самостоятельно.
Я так начинаю подозревать, что такое только Ext'ы и умеют...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.02.2014, 14:31
    #38564595
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
Ex_SoftЯ так начинаю подозревать, что такое только Ext'ы и умеют...Начинается все с лейаута.

Вот как только это написал, сразу вспомнил: в dhtmlx лейаут а-ля экстовский, и он может все то же, что и Ext. 1я демка , .

Плохая новость: body не пустой.
Хорошая новость: там лишь <script src="..."/>, а не куски разметки.
...
Рейтинг: 0 / 0
18.02.2014, 14:35
    #38564605
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
От dhtmlx я отказался из-за упоротого формата json, который потребляют гриды и деревья, ему нельзя просто сделать в линке from v in db.Table select v.Field1, v.Field2 и сериализовать.
...
Рейтинг: 0 / 0
18.02.2014, 14:56
    #38564651
DAA
DAA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
Ex_Soft, я не знаю, конечно, как у Вас собрано приложение на ExtJS, но очень часто разработчики выполнив разработку в development mode, ее же и запускают для production. Отсюда и ужасная тормознутость. Правильно собранная production версия грузится и работает очень даже шустро.
...
Рейтинг: 0 / 0
19.02.2014, 00:23
    #38565329
Dmitry Eliseev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
Ex_Soft,

Странно. Использую в своих проектах и с низкоуровневостью сталкиваться не приходилось.
И для одностраничных приложений в том числе. + там есть FRP .
Просто "нужно уметь его готовить" (с).

Поначалу, да, выносит мозг. Зато потом...
...
Рейтинг: 0 / 0
19.02.2014, 02:14
    #38565363
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
Dmitry EliseevEx_Soft,

Странно. Использую в своих проектах и с низкоуровневостью сталкиваться не приходилось.
И для одностраничных приложений в том числе.Этот пример тоже "низкоуровневый" — в нем есть скрипт-темплейты. Вот как выглядит идеальное приложение по мнению ТС (ссылка в body не в счет):
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>ExtTop - Desktop Sample App</title>
    <link rel="stylesheet" type="text/css" href="css/desktop.css" />
    <script type="text/javascript" src="../../examples/shared/include-ext.js"></script>
    <script type="text/javascript" src="../../examples/shared/options-toolbar.js"></script>
    <script type="text/javascript">
        Ext.Loader.setPath({
            'Ext.ux.desktop': 'js',
            MyDesktop: ''
        });

        Ext.require('MyDesktop.App');

        var myDesktopApp;
        Ext.onReady(function () {
            myDesktopApp = new MyDesktop.App();
        });
    </script>
</head>
<body>
    <a href="http://www.sencha.com" target="_blank" alt="Powered by Ext JS" id="poweredby"><div></div></a>
</body>
</html>
...
Рейтинг: 0 / 0
19.02.2014, 08:56
    #38565460
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
Ex_SoftСтоит задача реализовать single-page бизнес-приложение. Есть опыт разработки на ExtJS. В нем все устраивает, практически, все (за исключением пары-тройки ньюансов). Но ЭстЪ один довольно-таки довольно существенный недостаток - медлительность. Понятное дело - всяческие-разные обзоры/сравнялки читал. Но хотелось бы услышать, так сказать, мнение от людей действительно реализовавших/реализующих реальные бизнес-приложения. В общем: хочется что-то наподобие ExtJS'а, но пошустрее (понятное дело часть плюшек идет лесом в угоду скорости).
_________________
"Helo, word!" - 17 errors 56 warnings
похожэ на фееричный высер
пиши на чистом. чо
кнокдаун тоже в помощь
...
Рейтинг: 0 / 0
19.02.2014, 08:58
    #38565463
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
тьфу. кнокаут
...
Рейтинг: 0 / 0
19.02.2014, 09:22
    #38565485
Dmitry Eliseev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
Antonariy,

Никто не мешает вам не использовать темплейты в коде. Тем более что YUI умеет запрашивать темплейты с сервера в виде отдельных компонент. У меня в приложении body выглядит следующим образом:
Код: html
1.
2.
3.
<body class="yui-skin-sam">
   <div id="#app"></div>
</body>
...
Рейтинг: 0 / 0
19.02.2014, 12:46
    #38565898
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
On 19.02.2014 7:56 am, ILLHEAD wrote:
> похожэ на фееричный высер
И что же с ваших высот здесь фееричного и в чем высер?

> пиши на чистом. чо
что Вы подразумеваете под "пиши на чистом"?

> кнокдаун тоже в помощь
Посмотрел - по сравнению с Ext'ами "слабое подобие левой руки", IMHO...

On 19.02.2014 1:14 am, Antonariy wrote:
> Вот как выглядит идеальное приложение по мнению ТС (ссылка в body не в счет)
Абсолютно в дырочку ;) Я действительно не хочу заморачиваться с html/css. Хочу, к примеру, сказать в JS'е: "Роди окно с гридом" и все. А как оно будет рожаться - не колышет. У меня и без этого забот хватает...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.02.2014, 13:35
    #38566020
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
Ex_Soft,

офф
У тебя за окном людей убивают, а ты здесь про какие-то фреймворки пишешь.
Не комильфо, однако.
...
Рейтинг: 0 / 0
19.02.2014, 13:53
    #38566068
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
Ex_SoftOn 19.02.2014 7:56 am, ILLHEAD wrote:
> похожэ на фееричный высер
И что же с ваших высот здесь фееричного и в чем высер?

> пиши на чистом. чо
что Вы подразумеваете под "пиши на чистом"?

> кнокдаун тоже в помощь
Посмотрел - по сравнению с Ext'ами "слабое подобие левой руки", IMHO...

On 19.02.2014 1:14 am, Antonariy wrote:
> Вот как выглядит идеальное приложение по мнению ТС (ссылка в body не в счет)
Абсолютно в дырочку ;) Я действительно не хочу заморачиваться с html/css. Хочу, к примеру, сказать в JS'е: "Роди окно с гридом" и все. А как оно будет рожаться - не колышет. У меня и без этого забот хватает...
_________________
"Helo, word!" - 17 errors 56 warnings
фееричность в недовольстве вполне нормальными продуктами
то что вы хотите - из области фантастики. или если сумели сформулировать недовольство то и реализуйте фикс

на чистом - вы про скорость что то говорили

кнок - не левая рука, а правое полушарие, которое отвечает за понимание. а не слепое джсон портирование данных
...
Рейтинг: 0 / 0
19.02.2014, 14:14
    #38566124
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
по кноку могу прилепить книжку тут. не совсем легконаходима. фришная
...
Рейтинг: 0 / 0
19.02.2014, 14:30
    #38566171
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript Frameworks && Business applications
ILLHEADто что вы хотите - из области фантастики
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
Ext.define('Catalogue.Form', {
        extend: 'IForm',
        xtype: 'frmCatalogue',
        items: [
            {
                xtype: 'fieldcontainer',
                fieldLabel: 'ID',
                layout: 'hbox',
                defaults: { flex: 1, hideLabel: true },
                items: [
                    {
                        name: 'CatalogueID',
                        xtype: 'textfield',
                        disabled: true,
                        width: 70
                    }, {
                        xtype: 'button',
                        text: "...",
                        handler: function () {
                            window.open(urlViewCatalogue + this.up().up().idValue)
                        }
                    }
                ]
            },

            {
                xtype: "fieldcontainer",
                fieldLabel: 'Родительская ветка',
                layout: 'hbox',
                items: [
                    {
                        xtype: 'hidden',
                        name: 'RefID'
                    },
                    {
                        xtype: 'textfield',
                        name: 'RefName',
                        disabled: true,
                        width: 470
                    },
                    {
                        xtype: 'button',
                        text: "...",
                        handler: function () {
                            var frm = this.up().up();

// Роди окно с гридом, быстро, решительно!!!!111111

                            var dlg = Ext.create('Catalogue.dlgSelector', {
                                treeStore: frm.callerStore,
                                idField: findField("RefID", frm),
                                nameField: findField("RefName", frm),
                                nameSource: "Name"
                            });
                            dlg.show('Да, мой повелитель!');
                        }
                    }
                ]
            },
            {
                xtype: "fieldcontainer",
                fieldLabel: "Классификатор",
                layout: "hbox",
                items: [
                    {
                        name: 'ClassificatorID',
                        xtype: 'classificatorCombo',
                        width: 140
                    },
                    {
                        fieldLabel: 'Код',
                        name: 'Code',
                        xtype: 'textfield',
                        labelAlign: 'right',
                        labelWidth: 60,
                        width: 200
                    }
                ]
            },
            {
                fieldLabel: 'Название',
                name: 'Name',
                width: 800
            },
            {
                fieldLabel: 'Аббревиатура',
                name: 'Abbr'
            },
            {
                fieldLabel: 'Описание',
                name: 'Description',
                xtype: 'textareafield',
                width: 800
            },
            {
                fieldLabel: 'Публиковать',
                name: 'Publish',
                xtype: 'checkbox',
                inputValue: 'true'
            },
            {
                fieldLabel: 'Комментарии',
                name: 'Comments',
                xtype: 'textareafield',
                width: 800
            }
        ]
    })
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript Frameworks && Business applications / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]