powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (js) насколько востребована такая штука:
54 сообщений из 54, показаны все 3 страниц
(js) насколько востребована такая штука:
    #38018076
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем.
Такой вопрос интересный возник. Просто когда я переходил с прикладного программирования на вэб, первые же проблемы были - это кроссбраузерность, сложность обращения к элементам DOM (частично решено с jQuery) и медлительность таких обращений.
Поэтому чисто ради спортивного интереса решил начать разработку своей библиотеки на js, с набором основных компонентов delphi (мой родной язык). Задумка - уйти от вёрстки в чистом виде (html) и перейти к формированию интерфейса через js или же xml. Также это уменьшит количество обращений к DOM, так как часть информации и настроек будут сохранены в объекте вне DOM (то есть, что бы узнать расположение например и многое другое не прийдётся обращаться к стилям и аттрибутам элемента).
Вот и вопрос, есть ли в этом смысл?

P.S. просто был уверен что мне это понадобится, но вот коллеги на работе отрицают востребованность данной библиотеки...
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018185
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрP.S. просто был уверен что мне это понадобится, но вот коллеги на работе отрицают востребованность данной библиотеки...
Правильные у Вас коллеги.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018224
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeПрограмёрP.S. просто был уверен что мне это понадобится, но вот коллеги на работе отрицают востребованность данной библиотеки...
Правильные у Вас коллеги.

Объясните мнение пожалуйста. То есть это значит, что такое уже есть (как зовётся?), или менее удобно (из-за чего?), или просто Вам не нравится.
Просто я хочу объективности, так как все мы субъективны (я просто обожаю писать библиотеки под себя (даже излишне обожаю), а коллеги любят искать уже готовое, собирать, привязывать, править и чуть быстрее получать результат не заточеный под задачу (под её посл. развитие), а также верстать по 3-4 дня сайт)

Вообщем прошу все "за и против" обосновывать по возможности.

Всем заранее спасибо
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018233
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

Без комментариев. Даже не понятно что комментировать и на каком языке. :)
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018242
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeПрограмёр,

Без комментариев. Даже не понятно что комментировать и на каком языке. :)

а что требуется для понимания? :)
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018264
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрShSergeПрограмёр,

Без комментариев. Даже не понятно что комментировать и на каком языке. :)

а что требуется для понимания? :)
При чём здесь "понимание". Вы написали вопрос: "есть ли в этом смысл?".
Ответ очень прост - нету смысла . Это верно в любом контексте, ибо истинно. :)
Через некоторое время сами поймёте.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018273
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрP.S. просто был уверен что мне это понадобится, но вот коллеги на работе отрицают востребованность данной библиотеки...для крупных js-приложений, конечно, понадобится, коллеги неправы (возможно, они далеки от современного веба и воспринимают js как нечто максимум для "спрятать или передвинуть элемент").

Однако такие библиотеки уже есть, например, ExtJS. Там все объекты задаются как раз через json

Хотя, если есть свободное время, и хочется поэкспериментировать и прокачать опыт JS/CSS/HTML, имеет смысл попробовать написать что-то в этом роде.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018296
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч,

я люблю эксперименты))) так что продолжаю (в принципе не зависимо от ответов в данном топике... просто хотел узнать, кто (точнее сколько людей) стали бы использовать данную библиотеку в работе).
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018362
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

теоретически такая библиотека может оказаться полезной. Её написание это хорошая практика сама по себе вне зависимости от результата.

Ты не первый кто задается подобной задачей. Посмотри например ExtJS, jQuery UI. Также следует помнить что html 5 развивается в сторону поддержки RIA (Rich Internet Applications) и подобные библиотеки могут стать ненужными.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018389
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр, смысл есть, пользоваться кроме Вас и Ваших коллег вряд-ли кто-то будет :)
Попытайтесь к примеру описать структуру библиотеки и её смысл и прзентовать её коллегам.
На основе мнения людей, кто в теме проблем имеенно Вашей разработки, Вы и получите ответ на свой вопрос.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018405
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПрограмёр, смысл есть, пользоваться кроме Вас и Ваших коллег вряд-ли кто-то будет :)
...

Не будут из-за того, что не требуется (в большинстве случаев), или опять же, те кто пользуются чем-то подобным просто не будут переходить на что-то "сырое", даже если и перспективное?

Скажем так, может ли это вообще получить такой же уровень применения как и jQuery и стать отдельной веткой? или даже если всё будет идеально круто, всё ровно предпочтение будет отдано чему либо другому?
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018430
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileТакже следует помнить что html 5 развивается в сторону поддержки RIA (Rich Internet Applications) и подобные библиотеки могут стать ненужными.Ты про html5 Forms? там максимум - date/color/... picker
html5 - это прежде всего возможности, в принципе недоступные ранее
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018461
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр, Вы по сути делаете очередной js-шаблонизатор, заточенный под свои задачи. Сомневаюсь, что он будет полезен другим и сможет конкурировать с уже существующими :)
Но для себя и коллег пишите.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018466
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрТакже это уменьшит количество обращений к DOM, так как часть информации и настроек будут сохранены в объекте вне DOM (то есть, что бы узнать расположение например и многое другое не прийдётся обращаться к стилям и аттрибутам элемента).Во-первых, даже если вынести настройки, это (задумка) увеличит количество обращений к DOM. При получении статического html браузер получает его текстом, парсит и строит dom своими собственными, быстрыми методами. А вы это построение выносите в скрипт. Откуда уменьшению-то взяться?
Во-вторых, если вынести настройки, это скорее всего лишь прибавит тормозов. Нативный DOM (по крайней мере чтение) по идее работает быстрее js-объектов.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018549
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyПрограмёрТакже это уменьшит количество обращений к DOM, так как часть информации и настроек будут сохранены в объекте вне DOM (то есть, что бы узнать расположение например и многое другое не прийдётся обращаться к стилям и аттрибутам элемента).Во-первых, даже если вынести настройки, это (задумка) увеличит количество обращений к DOM. При получении статического html браузер получает его текстом, парсит и строит dom своими собственными, быстрыми методами. А вы это построение выносите в скрипт. Откуда уменьшению-то взяться?
Во-вторых, если вынести настройки, это скорее всего лишь прибавит тормозов. Нативный DOM (по крайней мере чтение) по идее работает быстрее js-объектов.
Нет, я не собираюсь DOM элементы скрыто создавать, читать их свойства или что-то подобное...
1. Я создаю объект js, в котором описываю кучу функций для управления элементом (функции - аналог функций в Delphi типа setPosition, setSize, setParent и т.д.)... эти функции устанавливают нужные атрибуты элемента + записывают соотвествующие значения в свойства объекта (при чтении я обращаюсь именно к ним, точно так же через функции-оболочки).
2. Определяю все обработчики событий для элемента и запускаю в них одноимённые функции объекта (определённые пользователем).
3. Всё что программисту знать не надо отправляю в переменную protect объекта (не private свойства из-за потребности в наследовании)
4. принудительно вызываю для всех событий stopPropagation и устанавливаю cancelBubble. Всплытие событий оформляю прямым вызовом обработчика родителя (не элемента-родителя, а объекта).
5. Для элементов, которые не требуют выполнения события по умолчанию (типа click по div) вызываю preventDefault и устанавливаю returnValue
6. Привожу объект событий для разных устройств к одному виду (события типа ontouchmove и onmousemove).

Вроде ничего из задуманого не забыл... Ну а всё остальное - вытекающие из данных пунктов...
Если есть поправки к идеям - пишите, рад выслушать всех и всё...
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018574
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileПосмотри например ExtJS
+1024
Если после просмотра у Вас еще останется желание полисапедить и уверенность, что сделаете, по крайней мере, не хуже - вперьодЪ!
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018612
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сделать хуже очень просто — вот, например, люди воспринимают себя очень серьезно, ломят 679 339 баксов за свой лосепет, а на выхлопе у них уг , загружающее проц на 20% просто от проведения мышкой над браузером.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018613
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_SoftbazileПосмотри например ExtJS
+1024
Если после просмотра у Вас еще останется желание полисапедить и уверенность, что сделаете, по крайней мере, не хуже - вперьодЪ!
Быстро посмотрел... не совсем понял, а как там предлагается управление элементами страницы кроме их создания? (и возможно удаления, но я нигде и его не видел в примерах). То есть могу я его программно передвинуть на 20 px правее при нажатии на кнопку например, или при клике мышкой? Просто создаются элементы удобно, выглядят красиво, функционируют классно, но главное - это удобное управление ними :)
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018624
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Быстро посмотрел" — это не подход к ExtJS.
ExtJS это самая сложная и навороченная библиотека из имеющихся на рынке, с наскоку ее не осилишь. Но она умеет почти всё. На ней типа можно написать клиентское веб-приложение вообще не вспоминая о dom/html/css.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018633
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрБыстро посмотрел...
/me вспоминает: Скоро только кошки родятся!
Програмёра как там предлагается управление элементами страницы кроме их создания?
тынць
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018660
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
Не забудьте только общеизвестный факт, что разметка HTML гораздо проще, чем в делфях DFM.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018679
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeразметка HTML гораздо проще, чем в делфях DFM.
+ чуть ли не добрая половина "заявленного" а-ля дельфинского VCL'евского функционала в вебе нафик не нужна, IMHO...
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018680
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeПрограмёр,
Не забудьте только общеизвестный факт, что разметка HTML гораздо проще, чем в делфях DFM.
я немного раньшеперейти к формированию интерфейса через js или же xml
про DFM никто не говорил :) давно известный факт, что xml лучше любого другого из общепринятых языков подходит для разметки чего либо (будь то документ, rss лента, список импорта товаров 1C или др.)... а html - это просто его узкозадачная (если так можно сказать) ветка.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018690
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрShSergeПрограмёр,
Не забудьте только общеизвестный факт, что разметка HTML гораздо проще, чем в делфях DFM.
я немного раньшеперейти к формированию интерфейса через js или же xml
про DFM никто не говорил :) давно известный факт, что xml лучше любого другого из общепринятых языков подходит для разметки чего либо (будь то документ, rss лента, список импорта товаров 1C или др.)... а html - это просто его узкозадачная (если так можно сказать) ветка.
А тогда о чём сабж?
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018702
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрпро DFM никто не говорил
Ну... Как видите, как минимум уже у нас двоих, такая ассоциация возникла. Причем, ессесно, на в лоб 1:1, а как аналог... А, уж, как будет чиста канкретна - не суть важно... BTW, к примеру, у Ext'ов приблизительно так и описывают ( Ext.grid.Panel )
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018711
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeА тогда о чём сабж?
если кратко - о том, насколько неудобен (не практичен) html + чистый js (в т.ч. jQuery) для работы с элементами страницы. И насколько удобнее объектная модель делфи + xml интерфейс (xml интерфейс - как опция для удобства создания начального интерфейса).
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018813
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не хтмл+яваскрипт, а хтмл+цсс. Про делфическую разметку забудьте. XAML в этом контенсте тоже не рекомендую.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018831
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрИ насколько удобнее объектная модель делфи + xml интерфейс (xml интерфейс - как опция для удобства создания начального интерфейса).Ну вот попробуй ExtJS покурить, оно и выяснится.
только там не xml, а json, что для программиста ещё удобнее.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018875
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечПрограмёрИ насколько удобнее объектная модель делфи + xml интерфейс (xml интерфейс - как опция для удобства создания начального интерфейса).Ну вот попробуй ExtJS покурить, оно и выяснится.
только там не xml, а json, что для программиста ещё удобнее.

обязательно посижу на выходных... посмотрю ) А пока что буду понемногу писать свои классы :) (пишу на телефоне в пути домой, так что "приятное с полезным" )
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018889
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрА пока что буду понемногу писать свои классы :)
пишу на телефоненаписание кода, используя телефон?
да, этот человек сможет сделать круче, чем extjs...
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38018895
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечПрограмёрА пока что буду понемногу писать свои классы :)
пишу на телефоненаписание кода, используя телефон?
да, этот человек сможет сделать круче, чем extjs...
)) не смешно... ))
просто usb от телефона дома забыл. сегодня вечером постараюсь кинуть то, что уже написал (если конечно не запинают :) )
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38019344
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрДобрый день всем.
Такой вопрос интересный возник. Просто когда я переходил с прикладного программирования на вэб, первые же проблемы были - это кроссбраузерность, сложность обращения к элементам DOM (частично решено с jQuery) и медлительность таких обращений.
Поэтому чисто ради спортивного интереса решил начать разработку своей библиотеки на js, с набором основных компонентов delphi (мой родной язык). Задумка - уйти от вёрстки в чистом виде (html) и перейти к формированию интерфейса через js или же xml. Также это уменьшит количество обращений к DOM, так как часть информации и настроек будут сохранены в объекте вне DOM (то есть, что бы узнать расположение например и многое другое не прийдётся обращаться к стилям и аттрибутам элемента).
Вот и вопрос, есть ли в этом смысл?

P.S. просто был уверен что мне это понадобится, но вот коллеги на работе отрицают востребованность данной библиотеки...
Готовьтесь к тому, что кроме Вас, Ваша поделка никому не будет нужной.
Так было у меня, это титанический труд, более 2-х лет, пока не было написано несколько серьезных онлайн-систем (от автоматизированных сайтов до различных систем учета).
Мне повезло - сейчас наша организация создает практически любые веб-ресурсы на моей системе, и сотрудники наконец начали ее более-менее осваивать.

В любом случае Вы получите бесценный опыт и практические знания, которые не забываются, потому что Вы это освоили сами!
Уважаю таких как Вы. Удачи!
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38019347
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asws,

Просто так ничего не бывает. Набрались опыта и т.п... . Вполне нормальное дело.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38019421
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если кому просто интересно - привожу код... Сильно не пинайте, просто если чё не так делаю - пишите, поправляйте меня, буду только рад.
Это маленький арканоид (совсем маленький :) )... Ну и при проигрыше появляются две пустые формочки (просто что бы показать как это уже можно делать), которые можно тягать. body специально сузил до 300px (просто ещё соотношения экрана не контролирую и всё такое). много чего уже задумал, и ещё больше даже не задумал ещё :)

Код: 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.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
// файл 1.js
extend = function(obj, cl, params){
 var params = params || [];
 cl.apply(obj, params);
 if (obj._superclasses==undefined) obj._superclasses = [];
 obj._superclasses.push(cl);
}
TNotify = {
 stop: function(e){
  if(typeof e.preventDefault!=="undefined"){
   e.preventDefault();
  }else{
   e.returnValue=false;
  };
  if(typeof e.stopPropagation!="undefined"){
   e.stopPropagation();
  }else{
   e.cancelBubble();
  }
 }
}
//тут будут очереди событий... ещё обдумываю
window.quene=[];
setTimeout(function(){
 var ev;
 if(ev = window.quene.shift()){
  ev["func"].call(ev.el, ev.e);
  setTimeout(arguments.callee, 0);
 }else{
  setTimeout(arguments.callee, 10);
 }
},10);
function TObject(){
 extend(this, Object);
 this._superclasses.push(this.constructor);
 this.protect = {self: this};
 this.destroy = function(){delete this;}
 this.getClass = function(){
  return this.constructor;
 }
 this.instanceOf = function(cl){
  var i = this._superclasses.indexOf(cl);
  if (i==-1) return false
  else return true;
 }
}
function TCollection(){
 extend(this,TObject);
 this.protect.objects=[];
 this.add = function(obj){
  this.protect.objects.push(obj);
 }
 this.remove = function(obj){
  var k=0;
  while(this.protect.objects[k]!=obj) k++;
  var l=this.protect.objects.length;
  this.protect.objects[k]=this.protect.objects[l-1];
  this.protect.objects.pop(); 
 }
 this.each = function(func){
  var tmp = [];
  for(var k=0; k<this.protect.objects.length; k++) tmp.push(this.protect.objects[k]);
  for(var k=0; k<tmp.length; k++){
   func.call(tmp[k]);
  }
 delete tmp;
 }
}
//планируется
/*function TServer(Owner){
 extend(this, TObject);
 this.protect.proc=new XMLHTTPRequest();
 this.ready = function(){}
 this.exec = function(lib, funcName, params){
  var args = "";
  for (var v in params){
   args +="&"+URIEncodeComponent(v)+"="+URIEncodeComponent(params[v]); 
  }
  var self = this;
  this.onreadyStateChange = function(req, answer){
   if (req.readyState==4 && req.status==200){
    self.ready.call(Owner);
   }
  }
  this.protect.proc.open("get", lib+"?"+encodeURIComponent(funcName)	+args, true);
  this.protect.send(null);
 }
}*/
function TPoint(x, y){
 extend(this, TObject);
 this.x = x;
 this.y = y;
}
function TBounds(left, top, width, height){
 extend(this, TObject);
 this.left = left;
 this.top = top;
 this.width = width;
 this.height = height;
}
function TBorder(bwidth, btype, bcolor){
 extend(this, TObject);
 this.width = bwidth || 0;
 this.type = btype || "solid";
 this.color = bcolor || "#000";
 this.toString = function(){
  return this.width+"px "+this.type+" "+this.color;
 }
}
function TRect(l, t, r, b){
 extend(this, TObject);
 this.left=l;
 this.top=t;
 this.right=r;
 this.bottom=b;
}
function TTimer(){
 extend(this, TObject);
 this.timer = function(){}
 this.protect.onTimer = function(){
  this.self.timer();
 }
 this.interval = 1000;
 this.protect.timer=null;
 this.protect.enabled = false;
 this.enable = function(){
  var prot=this.protect;
  if (this.protect.enabled == false){
   this.protect.enabled = true;
   this.protect.timer = setInterval(
    function(){prot.onTimer();}, prot.self.interval
   );
  }
 }
 this.disable = function(){
  var prot=this.protect;
  if (this.protect.enabled == true){
   this.protect.enabled = false;
   clearInterval(this.protect.timer);
   this.protect.timer = null;
  }
 }
 this.getEnabled = function(){
  return this.protect.enabled;
 }
}
function TComponent(){
 extend(this, TObject);
 var _destroy = this.destroy;
 this.destroy = function(){
  if (this.getParent()!=null){
   this.getParent().protect.removeChild(this);
   _destroy.call(this);
  }
 }
 this.click=function(e){};
 this.focus=function(e){};
 this.mouseDown=function(e){}
 this.mouseUp=function(e){}
 this.keyDown=function(e){}
 this.keyUp=function(e){}
 this.keyPress=function(e){}
 this.mouseMove=function(e){}
 this.protect.onclick=function(e){
  this.self.click(e); 
  if (this.parent!=null && !(term===false) )
   this.parent.protect.onclick(e);
  };
 this.protect.onfocus=function(e){
  term = this.self.focus(e);
  if (this.parent!=null && !(term===false))
    this.parent.protect.onfocus(e);
  };
 this.protect.onmouseDown=function(e){
  term = this.self.mouseDown(e); 
  if (this.parent!=null && !(term===false) )
    this.parent.protect.onmouseDown(e);
 };
 this.protect.onmouseUp=function(e){
  term = this.self.mouseUp(e); 
  if (this.parent!=null && !(term===false) )
    this.parent.protect.onmouseUp(e);
 };
 this.protect.onkeyDown=function(e){
  term = this.self.keyDown(e); 
  if (this.parent!=null && !(term===false) )
    this.parent.protect.onkeyDown(e);
  };
 this.protect.onkeyUp=function(e){
  term = this.self.keyUp(e); 
  if (this.parent!=null && !(term===false) )
    this.parent.protect.onkeyUp(e);
 };
 this.protect.onkeyPress=function(e){
  term = this.self.keyPress(e); 
  if (this.parent!=null && !(term===false) )
    this.parent.protect.onkeyPress(e);
  }; 
 this.protect.onmouseMove=function(e){
  term = this.self.mouseMove(e);
  if (this.parent!=null && !(term===false) ){
   this.parent.protect.onmouseMove(e);
  }
 }
 this.protect.children = [];
 this.protect.left = 0;
 this.protect.top = 0;
 this.protect.width = 0;
 this.protect.height = 0;
 this.protect.borders=new TRect(new TBorder(), new TBorder(), new TBorder(), new TBorder());
 this.protect.visibility=false;
 this.protect.background="transparent";
 this.protect.element = null;
 this.protect.parent=null;
 this.protect.appendChild=function(child){
  this.children.push(child);
  this.element.appendChild(child.protect.element);
 };
 this.protect.removeChild=function(child){
  this.element.removeChild(child.protect.element);
  var k=0;
  while(this.children[k]!=child) k++;
  var l=this.children.length;
  this.children[k]=this.children[l-1];
  this.children.pop();
 };
 this.protect.createElement = function(tag){
  if (tag!=null)
   this.element = document.createElement(tag);
   (function(){
    var prot = this;
    this.element.onclick=function(e){
     prot.onclick(e);
     TNotify.stop(e);
    };
    this.element.onfocus=function(e){
     prot.onfocus(e);
     TNotify.stop(e);
    }
    this.element.onmousemove=function(e){
     prot.onmouseMove(e);
     TNotify.stop(e);
    }
    this.element.onmousedown=function(e){
     prot.onmouseDown(e);
     TNotify.stop(e);
    }
    this.element.ontouchstart=function(e){
     prot.onmouseDown(e.touches[0]);
     TNotify.stop(e);
    }
    this.element.onmouseup=function(e){
     prot.onmouseUp(e);
     TNotify.stop(e);
    }
    this.element.ontouchend=function(e){
     prot.onmouseUp(e.touches[0]);
     TNotify.stop(e);
    }
    this.element.ontouchmove=function(e){
     prot.onmouseMove(e.touches[0]);
     TNotify.stop(e);
    }
   }).call(this);
   this.self.setBounds(new TBounds(
    this.left,
    this.top,
    this.width,
    this.height
   ));
  (function(style){
   style.position="absolute";
   style.boxSizing="border-box";
   style.border=this.protect.border;
   style.padding="0"; style.margin="0";
   style.visibility="hidden";
   style.background=this.protect.background;
   style.overflow="auto";
  }).call(this.self, this.element.style);
 }
 this.setParent = function(parent){
  this.protect.parent=parent;
  parent.protect.appendChild(this);
  this.setBounds(this.getBounds());
 }
 this.getParent = function(){
  return this.protect.parent;
 }
 this.getBounds = function(){
  var bounds = new TBounds(
   this.protect.left,
   this.protect.top,
   this.protect.width,
   this.protect.height
  )
  return bounds;
 }
 this.setPosition = function(position){
  if (position.instanceOf(TPoint)){
   (function(){
    this.left = position.x;
    this.top = position.y;
    this.element.style.left = position.x+"px";
    this.element.style.top = position.y+"px";
   }).call(this.protect);
  }
 }
 this.setSize = function(size){
  if (size.instanceOf(TPoint)){
   if ((size.x==0) && ((this.getParent()!=null) || this.instanceOf(TApplication))){
    var pb=(this.getParent()!=null)?this.getParent().getBorders():null;
    size.x=(pb!=null)?this.getParent().getBounds().width-(pb.left.width+pb.right.width):this.protect.element.parentNode.clientWidth;
   }
   if ((size.y==0) && ((this.getParent()!=null) || this.instanceOf(TApplication))){
    var pb=(this.getParent()!=null)?this.getParent().getBorders():null; 
    size.y=(pb!=null)?this.getParent().getBounds().height-(pb.top.width+pb.bottom.width):this.protect.element.parentNode.clientHeight;
   }
   (function(){ 
    this.width = size.x;
    this.height = size.y;
    this.element.style.width = size.x+"px";
    this.element.style.height = size.y+"px"; 
   }).call(this.protect);
  }
 }
 this.setBounds = function(bounds){
  if (bounds.instanceOf(TBounds)){ 
   this.setPosition(new TPoint(bounds.left, bounds.top));
   this.setSize(new TPoint(bounds.width, bounds.height));
  } 
 }
 this.setBackground = function(color, image, x, y, repeat){
  var color = color || "transparent";
  var image = image || "";
  var x = x || "0";
  var y = y || "0";
  var repeat = repeat || "no-repeat";
  (function(){
   this.color = color;
   this.image = image;
   this.x=x; this.y=y;
   this.repeat=repeat;
   this.element.style.backgroundColor=color;
   this.element.style.backgroundImage=image;
   this.element.style.backgroundPosition=x+" "+y;
   this.element.style.backgroundRepeat=repeat;
  }).call(this.protect);
 }
 this.setBorders=function(bl, bt, br, bb){
  var bl = bl||(new TBorder());
  var bt = bt||bl;
  var br = br||bl;
  var bb = bb||bt||bl;
  with(this.protect){
   borders.left = bl;
   borders.top = bt;
   borders.right = br;
   borders.bottom = bb;
  }
  this.protect.element.style.borderTop=bt.toString();
  this.protect.element.style.borderLeft=bl.toString();
  this.protect.element.style.borderRight=br.toString();
  this.protect.element.style.borderBottom=bb.toString();
 }
 this.getBorders = function(){
  var brd = this.protect.borders;
  return {left: new TBorder(brd.left.width, brd.left.type, brd.left.color), top: new TBorder(brd.top.width, brd.top.type, brd.top.color), right: new TBorder(brd.right.width, brd.right.type, brd.right.color), bottom: new TBorder(brd.bottom.width, brd.bottom.type, brd.bottom.color)}
 }
 this.show = function(){
  this.protect.visible=true;
  this.protect.element.style.visibility="inherit";
 }
 this.hide = function(){
  this.protect.visible=false;
  this.protect.element.style.visibility="hidden";
 }
}
function TApplication(){
 extend(this, TComponent);
 this.protect.element = document.body; 
 this.protect.createElement(null);
 this.setSize(new TPoint(0, 0));
 this.show();
}
function TPanel(){
 extend(this, TComponent);
 this.protect.createElement("div");
// this.setSize(new TPoint(100, 100));
}
function TDrager(){
 extend(this, TPanel);
 this.protect.element.style.zIndex="1000";
 var boundsLimit = TBounds(0,0,0,0);
 var parentBorders = null;
 var move = false;
 var moveComp = null;
 var moverComp = null;
 var cursorStart = new TPoint();
 var positionStart = new TBounds();
 this.start=function(e, comp, mover){
  if (comp.instanceOf(TComponent) && comp.getParent()!=undefined && mover.instanceOf(TComponent)){
   boundsLimit = comp.getParent().getBounds();
   parentBorders = comp.getParent().getBorders();
   if (typeof comp.getParent().getHeaderHeight!=="undefined")
    parentBorders.top.width += comp.getParent().getHeaderHeight();
   moveComp=comp;
   moverComp=mover;
   cursorStart = new TPoint(e.pageX, e.pageY);
   positionStart = moveComp.getBounds();
   this.show();
   return false;
  }
 }
 this.mouseMove = function(e){
  moverComp.mouseMove(e);
  var curX=e.pageX; var curY=e.pageY;
  if (e.pageX<boundsLimit.left+parentBorders.left.width) curX=boundsLimit.left+parentBorders.left.width;
  if (e.pageX>boundsLimit.left+boundsLimit.width-parentBorders.right.width) curX=boundsLimit.left+boundsLimit.width-parentBorders.right.width;
  if (e.pageY<boundsLimit.top+parentBorders.top.width) curY=boundsLimit.top+parentBorders.top.width;
  if (e.pageY>boundsLimit.top+boundsLimit.height-parentBorders.bottom.width) curY=boundsLimit.top+boundsLimit.height-parentBorders.bottom.width;
  var l = curX-cursorStart.x+positionStart.left;
  var t = curY-cursorStart.y+positionStart.top;
  moveComp.setPosition(new TPoint(l, t));
 }
 this.mouseUp = function(e){
  this.hide();
  moverComp.mouseUp(e);
 }
}
function TForm(){
 extend(this, TPanel);
 this.protect.appendChild=function(child){
  this.children.push(child);
  client.protect.element.appendChild(child.protect.element);
 };
 this.protect.removeChild=function(child){
  client.protect.element.removeChild(child.protect.element);
  var k=0;
  while(this.children[k]!=child) k++;
  var l=this.children.length;
  this.children[k]=this.children[l-1];
  this.children.pop();
 }; 
 this.getHeaderHeight = function(){
  return tp.getBounds().height;
 }
 var bt = new TBorder();
 var bo = theme.TForm.borders;
 this.setBorders(bo, bt, bo, bo);
 var tp = new TPanel();
 var client = new TPanel();
 var _setSize = this.setSize;
 this.setSize = function(size){
 _setSize.call(this, size);
 var b = this.getBounds();
 var bord = this.getBorders();
 client.setSize(new TPoint(b.width-bord.left.width-bord.right.width, b.height-theme.TForm.header.height-bord.top.width-bord.bottom.width));
 tp.setSize(new TPoint(b.width-bord.left.width-bord.right.width, theme.TForm.header.height));
 }
 tp.mouseDown = function(e){
  drager.start(e, this.getParent(), this);
 }
 client.setPosition(new TPoint(0, theme.TForm.header.height));
 this.protect.element.appendChild(client.protect.element);
 this.protect.element.appendChild(tp.protect.element);
 tp.protect.parent=this;
 tp.setBounds(new TBounds(0, 0, 0, theme.TForm.header.height));
 tp.show();
 client.show();
 tp.setBackground(theme.TForm.header.background);
 client.setBackground(theme.TForm.client.background);
}
//на будущее... inputs, images и т.д.
/*
function TInput(){
 extend(this, TComponent);
 this.protect.createElement("input");
 this.setSize(new TPoint(150, 15));
}
function TPassInput(){
 extend(this, TInput);
 this.protect.element.type="password";
}*/


theme = {
 TForm: {
  borders: new TBorder(2, "ridge", "#2035a0"),
  header: {
   height: 25,
   background: "#2035a0"
  },
  client: {
   background: "#a0a0a0"
  }
 }
}



// начало 
 window.app = new TApplication();
 window.app.setSize(new TPoint(300, 0));
 window.drager = new TDrager();
 drager.setParent(app);
 drager.setBounds(new TBounds(0,0,0,0)); 



Код: 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.
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.
// файл 1.html

<html>
<head>
</head>
<body>
<script type="text/javascript" src="1.js">
</script>
<script type="text/javascript">
 var gbounds = app.getBounds();
 var asize=new TPoint(gbounds.width, gbounds.height);
 var ptop = gbounds.height*0.8 - 10; 
 var a = new TPanel();
 a.setBounds(new TBounds(0, (ptop-10), 10, 10));
 a.setBackground("red");
 a.setParent(app);
a.show();
 var blocks = new TCollection();
 for (var x=0; x<10; x++){
  for (var y=0; y<6; y++){
   var block = new TPanel();
   block.setBounds(new TBounds((x*asize.x/10),(y*20), asize.x/10, 20));
   block.setBackground("#808080");
   block.setBorders(new TBorder(1, "solid", "red"));
   block.setParent(app);
   block.show();
   blocks.add(block);
  }
 }
 var plato = new TPanel();
 plato.setBackground("green");
 plato.setBounds(new TBounds(0, ptop, 100, 10));
 plato.setParent(app);
 plato.show(); 
 var dirx=2;
 var diry=-3;
 var timer = new TTimer();
 timer.timer = function(){
  var bnd = a.getBounds();
  var p = plato.getBounds();
  if ((bnd.left+bnd.width>gbounds.width) || (bnd.left<0)) dirx=-dirx;
  if (bnd.top+bnd.height>ptop && bnd.left+bnd.width>p.left && bnd.left<p.left+p.width){
   diry = -Math.abs(diry);
   dirx-=(p.left-bnd.left+((p.width-bnd.width)>>1))>>5; 
  }else{
   if(bnd.top+bnd.height>ptop){
    timer.disable();
    var lose = new TForm();
    lose.setParent(app);
    lose.setBounds(new TBounds(0, 0, 200, 200));
    var losech=new TForm();
    losech.setParent(lose);
    lose.show();
    losech.setBounds(new TBounds(0,0,100,100));
    losech.show();
   }
  }
  if (bnd.top<0){
   diry=Math.abs(diry);
  }
  blocks.each(function(){
   var bounds=this.getBounds();
   var c1x = bnd.left + ((bnd.width+dirx)>>1);
   var c2x = bounds.left+(bounds.width>>1);
   var c1y = bnd.top + ((bnd.height+diry)>>1);
   var c2y = bounds.top+(bounds.height>>1);
   var dx = Math.abs(c1x-c2x)-((bnd.width+bounds.width+Math.abs(dirx))>>1);
   var dy = Math.abs(c1y-c2y)-((bnd.height+bounds.height+Math.abs(diry))>>1); 
   if (dx<=0 && dy<=0){
    if (Math.abs(dy/dx)==Math.abs(diry/dirx)){
     dirx=-dirx; diry=-diry;
    }else{
     if(Math.abs(dy/dx)<Math.abs(diry/dirx)){
      diry=-diry;
     }else{
      dirx=-dirx;
     }
    }
    blocks.remove(this);
    this.destroy();
   }
  });
  a.setPosition(new TPoint((bnd.left+dirx), (bnd.top+diry)));
 };
 app.mouseMove = function(e){
  plato.setPosition(new TPoint(e.pageX-plato.getBounds().width/2, ptop));
 }
 timer.interval=10;
 timer.enable();
</script>
</body>
</html>


критикам.... прошу понимать, что писалась библиотека несколько дней в дороге, да ещё и на телефоне (смартфоне) :)
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38019487
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,ку

Забейте. Учите яваскрипт. Верстку оставьте верстальщикам.
Прежде, чем изобретать колесо, изучите жиквери, прочтите книжку ризига, почитайте, что народ делает для оптимизации. Ради интереса посмотрите яндексовский БЭМ.

Яваскрипт это вам не на паскале марать, проверки типа !(term===false) это готичненько. Плюс сто тролпоинтов сразу.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38019532
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanПрограмёр,ку

Забейте. Учите яваскрипт. Верстку оставьте верстальщикам.
Прежде, чем изобретать колесо, изучите жиквери, прочтите книжку ризига, почитайте, что народ делает для оптимизации. Ради интереса посмотрите яндексовский БЭМ.

Яваскрипт это вам не на паскале марать, проверки типа !(term===false) это готичненько. Плюс сто тролпоинтов сразу.
Все настолько плохо, да? А изучить jQuery - имеется ввиду его код покопать? И про тролпоинт впервые слышу. Это троян чтоли (если да, то дырку хоть одну покажите, что бы знать)? Про оптимизацию почитаю, думал этим заняться какраз. Очереди делать начал, но не совсем понял как правильно это делается и на время оставил (хотелось хоть какой костяк написать сначала). Вообщем комментируйте ошибки, буду смотреть, доучиваться.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38019539
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
var asize=new TPoint

Вот же ж как делфи мозг то корёжит, а...
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38019544
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ExtPascal еще не предлагали?

https://code.google.com/p/extpascal/
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38019546
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот еще подобный велосипед: http://www.raudus.com/
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38019573
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychik
Код: pascal
1.
var asize=new TPoint

Вот же ж как делфи мозг то корёжит, а...

эээ... ну просто я решил всё обернуть в специальные классы, что бы лучше всё контролировать... что бы проверять instanceOf любого объекта/массива и таким образом определять можно ли над ним выполнить какое-то действие. Образно говоря, если я форму унаследовал от TPanel, то всё, что я могу сделать с TPanel я могу и сделать с TForm. Точно так же я рассуждал о любом другом классе (как и TPoint). Представьте себе класс например TScreenPoint, который выдаёт ошибку при попытке записать в него координаты, выходящие за пределы экрана (ну или любой другой). Как его использовать в функциях? правильно, унаследовать его от TPoint и проверять на instanceOf(TPoint) . Если есть идеи лучше - готов послушать.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38019750
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. SakExtPascal еще не предлагали?

https://code.google.com/p/extpascal/

Код: plaintext
1.
2.
3.
4.
	XXXXX/\ 
	XXXX//\\___nnґЇ\__(v^:\\ 
	XXXX\_____\\____)=\__o\\\ 
	is rolling on the floor, laughing my a** off 

Вот, уж, действительно
badboychikВот же ж как делфи мозг то корёжит, а...

Ну ладно там Ext.NET ... Но паскакаль... Это же уму не растяжимо
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38019814
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38020486
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никому не понравилось что написано, или просто нету больше явных поправок по коду?
Извините за настойчивость, просто очень интересно что об этом всём думают другие программисты.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38020574
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без притягивания за уши объектной идеологии было бы раза в три компактнее.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38020604
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyБез притягивания за уши объектной идеологии было бы раза в три компактнее.
Я это понимаю (взять например YMaps1 и ymaps2, они там так и сделали и сразу уменьшили количество кода). Но у меня не укладывается как это реализовать можно без объектов. И кстати, нету также уверенности, что при увеличении сложности объектной модели (что я и расчитываю сделать) утверждение "без объектов легче" останется верным. Просто могут появиться функции, получающие на вход 10-15 разных параметров... или же 1 объект.
Думаю продолжить как есть и посмотреть что получится... Но подумать надо... может что-то и прийдёт в голову толковое.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38020610
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

"без объектов" - наверно имеются в виду конструкции вроде упомянутой var asize=new TPoint

можно ведь просто var asize={width: 34, height: 56};

в js всё проще и лаконичнее, чем в этих ваших паскалях

а объекты - для более сложных штук. Погугли, что такое prototype , и что с ним можно делать (я не про одноименную библиотеку).
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38020616
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

тебе стоит сначала освоить JavaScript и изучить как реализованы популярные библиотеки типа jQuery и extJs. И только затем писать свою библиотеку. Из приведенного примера видно что ты воспринимаешь JavaScript как обычный процедурный язык программирования, а не как функциональный язык, каким он является. Кроме того ты совершенно напрасно пытаешься перенести свои знания Delphi/ObjectPascal/VCL на почву JavaScript и веб-разработки. Прямой перенос изначально обречен на неудачу.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38020629
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрИ кстати, нету также уверенности, что при увеличении сложности объектной модели (что я и расчитываю сделать) утверждение "без объектов легче" останется верным.Я не сказал "легче", я сказал "компактнее". А под объектной идеологией я подразумевал ООП. Объекты в JS есть, а ООП нет. Если хочется ООП, смотри TypeScript .
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38020955
Фотография iConst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр... если кратко - о том, насколько неудобен (не практичен) html + чистый js (в т.ч. jQuery) для работы с элементами страницы. И насколько удобнее объектная модель делфи + xml интерфейс (xml интерфейс - как опция для удобства создания начального интерфейса).Э-э-э... Неудобен... Вы переносите дельфийское мышление на веб. И через некоторое время (если не надоест этот чертов веб) убедитесь, что беговые коньки не подходят для игры в хоккей.
Любые фреймворки, и свои в том числе, как только начинаешь их использовать, садятся тебе на шею и загоняют в глубокую колею.
Потому я часто солидарен с Сержем (хотя он и, иной раз, перегибает), что использование нативных средств веба дают большую свободу, экономию ресурсов (клиента), да, наверное, и выигрыш во времени разработки - опять же, вопрос вкуса кошатины...
лирикаКогда (давно) познакомился с парадигмой аспнет и серверных контролов, то восхищению "красоты игры" не было предела. После некоторого времени общения с технологией пришло понимание, что не все так шоколадно. Вроде бы есть свобода - курочь готовые, пиши свои контролы, да только хлопотно это... Опять же постбеки... Вроде Аджакс есть - так вьюстейт гонять туда-сюда неохота (а тогда каналы были пожиже - сейчас семечки). На клиенте та же песня: вроде есть могучие фреймворки (например, нонешняя Сенча), так снова - шаг в сторону: расстрел. Всегда чего-то не хватает. Или допиливай с офигенной потерей времени или отсекай что не влезло. И, как-то потихоньку, сполз на аморфную технологию: в основе натив + какая-нибудь приправа: что быстрей, проще и лучше подходит для задачи.
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38083530
altagur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЕНа самом деле все это утпые распальцовки типа веб это вам не гуи. Глупо так пальцеваться когда весь мир не то что уже перешел на веб а ля гуи но переходит на облачныве хранилища где стоит голимое гуи и вы работаете в винде илои унихе сс гуи приладами

Проблемы две; Перва сраный гугл кк всегда все просрал и зхабросил ExtPascal не натянув его на extjs4
Отсюда вторая - уже существующие нормальные либы а ля Фархадова unigui начинают резко сосать из-за того наприер что даже встарых компонентах extj типа grid клавиши отвалили инадо addElListener('keypress',

Так что титаническая и совершенно полезная нужная работа - это натянуть extpascal на extjs4

Я пишу на си с моментаа его появления и на дельфе тоже и жабе. Visual сстуждень никогда не будет таким же удобным и приятным как дельфа потому что у гейтсовцев руки не в ту сторону торчат по жизни То что я на unigui делаю за час c автоматической генерацией форм Вы будете делать год всем предриятивм в вижуал студне и потом гордиться этим .
Так как googlу козлистый забросил extpascal остается естественно opensource project EXTJS для Visual Studio Сидеть же лапами верстать шото на php jquery и прочей хрени - убожество Неконкурентное. 90% усилий должна занимать и в вебе и в гуи разработка базы а морда 10% У криворуких же любителей птичьих языков все наоборот
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38083565
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altagurСидеть же лапами верстать шото на php jquery и прочей хрени - убожество Неконкурентное.хмм, большая часть интернетов написана на php, jquery и прочей хрени
видимо вы с кем-то конкурируете в какой-то узкой области, нам не интересной
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38083599
Фотография iConst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altagur... 90% усилий должна занимать и в вебе и в гуи разработка базы а морда 10% ...Что есть гуи , а что морда ? В нашем болоте это одно и тоже. :) И откуда дровишки (%)? .
30-40% и более (в моей практике рекорд: ~55%) занимало проектирование и прочая хрень. Это когда еще ни строчки кода не написано и ни одной кнопки не брошено :).
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38083710
stopkran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariyбольшая часть интернетов написана на php, jquery и прочей хрени

хмм... может быть, именно поэтому бОльшая часть интернетов являет собой унылое убожество?
...
Рейтинг: 0 / 0
(js) насколько востребована такая штука:
    #38083736
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopkranAntonariyбольшая часть интернетов написана на php, jquery и прочей хрени

хмм... может быть, именно поэтому бОльшая часть интернетов являет собой унылое убожество?может быть, хотя навряд ли
убогая часть интернетов не только на этой хрени написана. множества "хрень" и "убожество" пересекаются, а не идентичны.
...
Рейтинг: 0 / 0
54 сообщений из 54, показаны все 3 страниц
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (js) насколько востребована такая штука:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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