Последние темы Поиск
Новые форумы
Общие форумы
Форумы поддержки портала iXBT.com
Специализированные форумы
ПроцессорыРазгон и охлаждениеСистемные платыМодули памятиВидеосистемаКриптовалюты, майнинг, blockchain-технологии, NFTИскусственный интеллект: технологии, практика, развитиеTV- и FM-тюнеры, видеовход, видеовыходЦифровое видео: захват, монтаж, обработкаМониторы и другие устройства отображенияЦифровое фотоБеспилотные летательные аппаратыЦифровой звукProAudio: Профессиональное звуковое оборудованиеСтереосистемыДомашний кинотеатр: проигрыватели и источники сигналаДомашний кинотеатр: аудиосистемаДомашний кинотеатр: ТV и проекторыМагнитные и SSD накопителиОптические носители информацииСетевые носители информацииПериферияКорпуса, блоки питания, UPSСети, сетевые технологии, подключение к интернетуСистемное администрирование, безопасностьСерверыНоутбуки, нетбуки и ультрабукиПланшеты и электронные книгиМобильные телефоны, смартфоны, кпк, коммуникаторыМобильные гаджетыОператоры и технологии мобильной связиТелефония, телекоммуникации, офисные АТСБытовая техника
Программы
Игры
Авторские форумы
Прочие форумы
Архивы конференции
Архив "О Конференции"Архив "Процессоры"Архив "Разгон и охлаждение"Архив "Системные платы"Архив "Модули памяти"Архив "Видеосистема"Архив "Видеозахват"Архив "Мониторы и другие устройства отображения"Архив "Цифровое изображение"Архив "Цифровой звук"Архив "Периферия"Архив "Корпуса, блоки питания, UPS"Архив "Коммуникации: сети и сетевые технологии"Домашний интернет, модемы (архив)Архив "Системное администрирование, безопасность"Архив "Мобильная связь"Программы Microsoft: Windows, Office, Server, Windows LiveАрхив "OС и системное ПО"Архив "Программы: Интернет"Архив "Программирование"Форум прикладных программистовАрхив "Электронные устройства и компоненты"Архив "Околокомпьютерный Флейм & Общий"Архив "Полемика (Злобный Флейм)"Околоавтомобильный ФлеймФорум ремонтниковВопросы компании IntelФотокамеры SamsungФорум о магазине приложений RuStoreФорум по продукции компании Huawei
Справка и сервисы
Другие проекты iXBT.com
Тема закрыта (moderator-Kid: тема исчерпала себя (уже давно) и стала откровенно бессмысленным флудом (в последнее время))
Страницы:Кликните, чтобы указать произвольную страницуназад1234567565758далее
Vladimir Rybinkin: Заставить работать машину клиента!
Vladimir Rybinkin
заблокирован в форуме
Автор темы
42/3743 ответов
24 года на iXBT, с ноября 2000
Чаще пишет в "Программирование" (67%)
Инфо
V
Vladimir Rybinkin заблокирован в форумеАвтор темы
16 лет назад / 04 августа 2009 10:03
Sioln
Эм... т.е. проверку прав тоже на клиенте делать будем?
Почему на клиенте? Какие вообще проблемы с проверкой прав?
Или Вам не инструментарий, а GUI надо?
Инструментарий. В том числе для GUI.
Вам IDE на JS хочется?
А что такое IDE?
Запустил ваш "тест"
Из архива, что ли? У меня прекрасно запускается... Или у MSIE 8.0 (у меня 5 или 6 - не помню) какие-то навороты? Или NT 6.0 (98) чего-то надо? Или настройки чего-то не позволяют? Там же (в тесте) НУ НИЧЕГО нет!

Продолжаю "поток сознания":

Что-то все-таки не то. Даже сформулировать не могу. Периодически происходит нечто странное: выскакивают ошибки типа "неопределенная ошибка" (детектировать, стало быть, можно, а понять, чего именно поймал - ну никак низзя!) или "неожиданный вызов функции" (раз двадцать вызывалась без проблем, а потом бац - и глаза на лоб). При этом дальнейшая работа то абсолютно правильная, как будто никакой ошибки и не было, то аварийная остановка. Такое ощущение, что всякие генерируемые теги script начинают жить своей жизнью (интерпретироваться раньше времени). Впрочем, не уверен. Но раздражает. Текстов-то с гулькин нос, интерпретируй не хочу - чего выеживаться?

Что же нам делать с document.read? Не видать чтой-то такого сервиса. А чего у него вообще есть? Вот зараза, не показывает! А window? Этот - пожалуйста, со всей душой. Так...

Ух ты! clipboardData="[object]" это что за зверюга такая? dropEffect... effectAllowed... Ни хрена не понял!

document="[object]" - Ну?! А этот "object" покажешь? Ах ты гнида! А почему?! А, ну конечно - "неопределенная ошибка" - куды уж тебе разобраться...

Чо только не придумают! onbeforeprint, onbeforeunload...

Вау! window.body - пустота, а на window.document.body... Ой, скоко ж тут дерьма-то всякого понавалено... canHaveChildren... и как они сами-то в таком кошмаре разбираются? Ага! innerHTML, innerText - это уже интересно... Но не совсем то... nodeName="BODY" - О! Верно! Теплее, теплее... outerHTML, parentElement, parentNode, readyState="complete" - одуреть! Так, стоп! А почему ошибки на этот раз нет?! Ага, зараза! От нас не скроешься!

О, Господи! Очередная порция, так сказать, параметров. Длиной в километр. activeElement, applets, childNodes, documentElement, protocol, scripts, security... Господа, тону! Кто здесь плавал - помогите! Теперь я понимаю броузер - где ж тут определиться с ошибкой - сам черт ногу сломит!

Тем не менее, доступ к телу (BODY) в виде HTML и в виде текста получен - ура! Теперь бы еще к HEAD. Ну, к TITLE - понятно...

Впрочем, чего я страдаю? С HEAD как-нить на досуге разберемся. А все остальное принципиально имеется - все, что и хотелось: переписывать кадр умеем, с полями объектов проблем особых нет, ссылки худо-бедно эмулирем, обмен данными между фреймами моделировали, доступ к телу "вражьей" страницы обозначился... С событиями еще не работали, но особо пока и не требуется. Теперь остается техника - как именно лучше всего реализовать текущие требования. Ау, господа - навалимся гурьбой?

Для полного счастья нужно: обсудить и отладить структуру паспортов для выдачи таблиц, списков и разных прочих промптов, методы обмена данными (в т.ч. с Инетом), оформления страниц, разных полезных вкусностей. В этих моих "учебных" примерах приводится какая-то абсолютная хрень - прыгает чего-то, мельтешит... А какой внешний (оформительский) инструментарий НА САМОМ ДЕЛЕ нужен? Идеальный, для ПОЛНОГО счастья, поскольку принципиальных ограничений по возможностям лично я УЖЕ не вижу (кто знает - вэлкам, тоже важно). Так какая для этого нужна БИБЛИОТЕКА?

Поток сознания закончился. Теперь - техника.

Во-первых, а не зря ли я программный стек отменил? Вызов-то удобнее. Да и какое дело прикладнику до стеков (тем более, до стеков очередей)? В SINT у меня сделано хитрее... Ладно, попробуем:

Имеем: системный объект (с паспортом), стеки очередей и парсер, по ним ползающий. Из прикладного уровня не вызываемый (не в смысле недоступный, а по соглашению). Вызывается же он из прикладного парсера, либо из двухпоточной зарядки, либо из строки методов. Тогда стартовая инициализация должна выглядеть примерно так:

Во-первых, морда. Предположим, что на сайте допускается сразу два типа обслуживания: с постоянной (скажем, index.htm) и переменной (index.html) толщиной клиента. Оба входа предназначены исключительно для хранения глобальных объектов, методов и текстов глобальных функций. Во втором случае предполагается промежуточный дочерний фрейм для хранения текстов функций переменного состава. Сын же index.htm (или внук index.html) - это уже головной рабочий кадр. Если и он фреймообразующий, рабочими становятся уже внуки (правнуки). Дальше в "генеалогию" лезть как будто незачем.

Поскольку инициализация (да и работа) по любому входу во многом совпадает, инициализацию запустим по общему алгоритму, при этом тип обслуживания будет определяться по идентифицирующей переменной на морде (по самому факту ее существования) - см. аттач. Загрузочный фрейм (всегда сын) создает и инициализирует объекты на морде, после чего переписывает себя либо на рабочий кадр, либо на кадр хранения текстов переменного состава. В последнем случае... нет, что-то лень мне заниматься тем, что может вообще не понадобиться. Короче, ответвление обозначено, реализация - в случае возникновения потребности, принципиальная возможность имеется - проверено.

Рабочий кадр любого уровня иерархии получает доступ к данным и методам через единственное определение r="parent.[parent.][parent.]..."; В остальном тексты кадров разных уровней неотличимы (если, конечно, выполняют ту же работу). Обмен данными между фреймами либо непосредственно по имени, либо через кого-то из родителей (уж морда-то всякому родитель).

Перечень основных функций (аттач, файл a.j) неизменен, приложение к морде. Это по определению наиболее важные (оптимизированные, отлаженные) функции, посему просьба критиковать и состав, и содержимое.

Начальная загрузка (файл a.h -> b.j): создание объектов и методов (той самой пресловутой "библиотеки"), загрузка начального рабочего кадра (то бишь "настоящего" index.htm, предназначенного для посетителя сайта), и обеспечение доступа к этой библиотеке создателю странички (прикладнику). Никакого контроля за деятельностью прикладника не проводим (не транслятор, чай), считаем, что он и сам соображать должен (тем более, что "прикладник" - это я и есть ). Инструментарий должен обеспечивать максимально комфортную реализацию всего того, что взбредет в голову прикладнику и, если тот позволит - конечному пользователю. Господа прикладники, изложите, плиз, что же вашей душе угодно? Каких возможностей не хватает при разработке? При сопровождении? Чего не хватает юзеру? Чем его можно заинтересовать, чтобы он, придя на ваш сайт, отправился дальше именно в ваших "доспехах"? Или даже собирал бы себе клиента с "разных" сайтов. Во игрушка-то, а? Кстати, разобрался с "неожиданным вызовом" - переопределяю m.e=eval; - неожиданности заканчиваются. . Остальным встроенным функциям (типа alert) - по барабану. Ну и гадюшник!

Для затравки: я тут грозился arsa сотворить клиента для google (сервис для уточнения запросов). Попробуем, что ли?

Снова прошу перечень ваших (обсуждаемых в этой конфе) проблем. А то у меня появляется нехорошее ощущение, что я уже умею все, что душе угодно.

Продолжение следует...
К сообщению приложены файлы:
Sioln
Member
221/5644 ответов
22 года на iXBT, с августа 2002
26 фото на iXBT.photo
Чаще пишет в "Программирование" (35%)
Россия, Калиниград
Web-страница
Инфо
S
Sioln Member
16 лет назад / 04 августа 2009 11:16
Vladimir Rybinkin
Из архива, что ли?
Нет, распаковал.


У меня прекрасно запускается...
Могу только поздравить
Vladimir Rybinkin
заблокирован в форуме
Автор темы
43/3744 ответов
24 года на iXBT, с ноября 2000
Чаще пишет в "Программирование" (67%)
Инфо
V
Vladimir Rybinkin заблокирован в форумеАвтор темы
16 лет назад / 05 августа 2009 09:49
Sioln
Нет, распаковал.
Странно...
Могу только поздравить
Не, это я Вам могу посочувствовать. Судя по диагностике, там проблемы с загрузкой b.j. А он грузится ПОСЛЕ a.j. А технология загрузки того и другого отличается лишь одной буквой. Той самой - a или b. Так что обнаглела Ваша софтина вконец. Токо на помойке ей и место.

all
Похоже, последний тест: все прекрасно работает, и мне уже просто лень что-то вылизывать (скажем, по нормальному надо бы данные на морду отправлять в динамике и т.п.). Так что слеплено несколько топорно, но все-таки: целый сайт в одном флаконе (он же страница - см. аттач), общим весом в... ща... 620 виртуальных страниц. Ха! И сайт-то не маленький! И не хило перевязанный. Так хто там забижал JS?! А ну-кось, где там "библиотекари"? Смогете сварганить подобное, и не уползти при этом на пару порядков по объему? Вот вам и разгрузка сервера: выдай такую "страничку" юзеру - и он целый день больше не будет тебя беспокоить. Если, конечно, инфа его интересует - цены там на билеты, расписание поездов, отелей, путеводитель по товарам, по лекарствам и болезням... Фильтры еще можно приделать (прям ща и попробую). А если еще сервис дать, чтобы можно было собственную базу собирать...

Кстати, технология работы называется "ни шагу назад", поскольку эта придурь (которая броузер) умудряется каким-то образом вести "историю" посещенных страниц ( ). Я просто балдею - сам же, дубина, интерпретируешь! Не видишь, что ли, что страница ТА ЖЕ САМАЯ?! Ну и лепит то, что по дурости своей считает "предыдущей страницей" (точнее, страницАМИ)... Все, естественно, перестает работать.

Некоторые пояснения: буквально любое слово текста (кроме разве что заголовков) есть ссылка. К сожалению, показать, что это именно ссылка я пока не умею: если поставить HREF, ручки шаловливые броузера немедленно куда-то лезут ("невозможно отобразить страницу"). Хотелось бы выделять эти ссылки цветом (всегда) и подчеркиванием (при наведении мыши).

Далее. Специально обозвал кнопку "Home" как "Ремонт" (то бишь перезагрузка index.htm вместе со всем инструментарием) - своего рода защита от "интеллекта" этого козла. Ну и игрушку с палитрой повесил - для симметрии. А между ними - навигация (над ними, ясный пень, алфавитная). Навигация такая: название типа ресурса есть ссылка на все ресурсы данного типа (имеющиеся на странице, разумеется - той, которая "сайт"). Чекбокс же есть фильтр для показа ресурсов этого типа на текущей странице (это уже на любой виртуальной, до отмены фильтра). В общем, понажимайте - думаю, там все прозрачно. А потом скажите, "чего в этом супе не хватает" (чего еще может понадобиться самому привередливому юзеру).

Кстати, а что это я фигней занимаюсь? Второй фреймообразующий кадр нужно сделать ОБЯЗАТЕЛЬНЫМ (как и первый). Тогда третий кадр всегда рабочий, при желании их может быть скоко угодно (в т.ч. невидимых), а второй кадр "по совместительству" может хранить переменную толщину клиента. Четвертый уровень - для временных кадров (для экзотики). Стройненькая такая система получается...

Ну что, займемся делом? ИДЕАЛЬНЫМИ классами? Которые не просто строки, а структуры, с пользовательскими атрибутами, с методами, сами методы... Навскидку - желательно бы иметь постоянно висящее меню (возможно, выпадающее), и отдельный фрейм "Настройка" (возможно, временный). Сервис "Игрушка" - диалоговая модификация данных и их структуры (переделка полученных с сервера(ов) страниц, сборка собственной БД, сохранение и восстановление у себя (типа config). Чо бы еще придумать? Присоединяйтесь, господа бароны, присоединяйтесь!

Ах, да - забыл сам тест прилепить.
К сообщению приложены файлы:
Vladimir Rybinkin
заблокирован в форуме
Автор темы
44/3745 ответов
24 года на iXBT, с ноября 2000
Чаще пишет в "Программирование" (67%)
Инфо
V
Vladimir Rybinkin заблокирован в форумеАвтор темы
16 лет назад / 06 августа 2009 11:42
Ну что, снова все замолчали?

Насчет последнего теста я, конечно, погорячился. Надо бы еще БД попробовать. Не ту кастрированную и однородную, как в предыдущем тесте, а... Во! Возьмем-ка мы "Борей", он же "Northwind", он же учебная БД для MS Access - там наверняка пользовательские классы понадобятся. Оригинал валялся где-то на microsoft.com (думаю, и сейчас валяется). Предварительно отрежем неанглоязычные ресурсы, шоб глаза не мозолили (в смысле, использующие не латинские символы). Да подрихтуем малек схему БД, а то совсем уж позорище. Учителя, блин! .

Да... В этом дерьме тоже повозиться придется... Да выдачу обдумать. Но меня просто убивает мертвая тишина в ветке. Неужели программистов вообще не осталось? Чем вы ваще занимаетесь в этой конфе? Так... Судя по заголовкам - ничем . Ау, модераторы! Вы бы хоть звание экспертов отменили, что ли. А то мне, постороннему человеку, бывает просто стыдно читать бредни под этим статусом. А вам?
Sioln
Member
222/5648 ответов
22 года на iXBT, с августа 2002
26 фото на iXBT.photo
Чаще пишет в "Программирование" (35%)
Россия, Калиниград
Web-страница
Инфо
S
Sioln Member
16 лет назад / 06 августа 2009 12:55
Vladimir Rybinkin
Тебя уволили чтоли?
Биомеханик
Member
2533/51090 ответов
24 года на iXBT, с июня 2000
Чаще пишет в "OС и сист. ПО" (39%)
Россия, Ленинград
Инфо
Биомеханик Member
16 лет назад / 06 августа 2009 13:11
Vladimir Rybinkin, тебе поговорить не с кем что ли?!
Vladimir Rybinkin
заблокирован в форуме
Автор темы
46/3747 ответов
24 года на iXBT, с ноября 2000
Чаще пишет в "Программирование" (67%)
Инфо
V
Vladimir Rybinkin заблокирован в форумеАвтор темы
16 лет назад / 08 августа 2009 12:05
Sioln
Тебя уволили чтоли?
Нет.

Биомеханик
тебе поговорить не с кем что ли?!
Вот именно - не с кем. Тема, на мой взгляд, исключительно важная. Уровень же участников ветки - нулевой (мой - тоже). Неужели профессионалы никогда не занимались клиентской частью?
Vladimir Rybinkin
заблокирован в форуме
Автор темы
47/3748 ответов
24 года на iXBT, с ноября 2000
Чаще пишет в "Программирование" (67%)
Инфо
V
Vladimir Rybinkin заблокирован в форумеАвтор темы
16 лет назад / 10 августа 2009 09:32
Да ужжж... Тишина даже и не удивляет. Мож, пользователи какие забегают сюда?

Разобрался я с "Northwind". Отрезал неанглоязычные ресурсы, изменил схему БД. Пользовательские классы (старые, с модифицированной структурой - убрал всякую муть типа Discontinued, кое-что вынес в отдельные классы): Categories, Customers, Employees, Order Details, Orders, Products, Shippers, Suppliers. Пользовательские классы (новые): Address, Company, Person, при этом Address развернул в дерево (City, Country). Кое-какие поля (должность, скидка, ...) сделал перечисляемыми - для разнообразия. Редактирование пока не планирую, да и вряд ли вообще притронусь - техническая реализация элементарна, а вопросы удобства в работе и организации контроля по определению лежат на юзере - пущай у него голова и болит. Так что считаем, что базу редактирует некий абстрактный "персонал", а посетителям сайта предлагается уже готовая жвачка.

А, черт! "Персонал" недосмотрел - еще подрезать можно... англоязычные товары неанглоязычных производителей - на фиг... их потребителям, соответственно, облом... из заказов тоже вышвыриваем... "опустевшие" и "чужеземные" заказы туда же... перевозить их не нужно... сопровождать тоже... заказчиков, оставшихся вообще без товара... Блин, надеюсь, они не очень "интернационализмом" увлеклись - что-то в базе все же останется? Не, малек осталось - где-то около трети - отлично! На всякие глупости, типа одинаковый номер телефона у разных компаний ( ) обращать внимания не будем.

Теперь - как хранить все это барахло на странице? Вообще говоря, глаза разбегаются: можно как "отношения" (опять же - массивы строк или массивы объектов), можно с атрибутами в качестве имен полей или значениями аналогичных полей класса, можно... А что проще? Думаю, так: единый массив строк на все про все, пользовательские атрибуты в классах, имя класса в элементе, интерпретация данных элемента (поля значений, ссылки) - "классовыми" методами, доступ к элементу - по индексу. Ну, можно еще "реляционный", по ключу (если индекса под рукой не окажется). Что еще? Внешний вид (виртуальной) страницы определяется классом текущего элемента - либо "персональная" на элемент, либо на всю группу класса. Хотя... это все проблемы шаблона. Ну и время от времени надо бы заставить ее чего-нить посчитать. Приступим...

Так. Шаблончиков у нас будет... чтой-то до хрена... Ладно, пущай - и мне надо малек руку набить на JS, и вас, обормотов, поучить, как надо программы писать. Перечисляемые типы надо бы снабдить фильтрами (по типу Excel). И при генерации страницы посчитать какую-нить статистику, типа суммарных объемов поставок - пущай клиент вкалывает! Как и записано в названии ветки.

Посмотрим, что можно выжать из этого дела.

Классы:

Persons
FirstName, LastName, Title, косвенно - Company и ее вид (Customer, Supplier). Скучновато... Используем для фона - более обширная информация о компании, и только.

Employees
Тот же Person, но более развернутый - Address, HomePhone, BirthDate и прочая хрень. Ах, нет - они связаны с заказами, и между собой какая-то система подчинения. Ok, заслуживает персональной странички.

Products
QuantityPerUnit, UnitPrice... Ага! Это уже интересно - движение товаров и денег (подробности в Order Details). Аналогично - Categories: тот же Products, но более общий. И то, и другое заслуживает персональной странички.

Addresses
Тоже просто дополнительная информация о компании или человеке. Однако City и Country, бесспорно, претендуют на персональную страницу.

Companies
Три вида: Customers, Suppliers и Shippers. Надо же - не пересекаются: одни только производят, другие только потребляют - примитив! Зато можно в качестве обобщенных компаний использовать City и Country - эти наверняка пересекаются. Заслуживают "кармана" (для денег), и... объемная страничка получается на каждого: товары, поставщики, потребители, заказы...

Orders (Order_Details)
О! Тут еще движение товаров и денег ВО ВРЕМЕНИ! Даже самому интересно стало, что получится - не как программисту, а как пользователю. И чего у нас творится с датами? О, Господи! BirthDate=8.12.1998, HireDate=1.5.1992 - что бы сие значило? Ладно, хрен с ними... Ого! Почти 500 уникальных - есть, где развернуться. 24 месяца трех разных лет, обычно полсотни событий в каждом (от 7 до 131). Здесь совершенно потрясающую игрушку можно сделать. Графики изменения содержимого карманов во времени рисовать - это, конечно, слишком, но...

А это что еще за бред?! UnitPrice в Order Details в точности повторяет его же в Products. Ну и на хрена он такой хороший там нужен? Поганой метлой!

Так, а скоко у нас всего ресурсов? 1705, из них на страничку претендуют... всего-то 246! Или 714, если заказам подарить по страничке (не фиг баловать, хотя реализовать и просто, и дешево в смысле объема). Кстати, а объем? До 64К малек не дотягивает. Правда, он еще подрастет где-то на треть. Но все равно - страничка по нынешним меркам легкая. Но по моим наполеоновским планам должна драть Access по функциональности, как кота. Посмотрим...

Теперь - как все это хозяйство должно жить во времени. Производители товары производят, покупатели потребляют, перевозчики перевозят, деньги движутся в обратную сторону. Каждая компания (а также город и страна) имеет собственный "карман", в котором изначально 0 (американских) рублей. При каждом событии (ShippedDate) заказчик платит производителю, скажем, Product * Quantity * (100% - Discount) * UnitPrice, а перевозчику... понятия не имею... пущай будет Freight. При этом за дострочную поставку (ShippedDate < RequiredDate), допустим, даем премию в 5%, а за каждый день просрочки - штраф 0.5%. Города и страны суммируют доходы и расходы своих предприятий. Таким образом, от события к событию карманы участников как-то изменяются - это динамика во времени. Меняется, кстати, и количество связей между поставщиками и потребителями, объем товарооборота между компаниями, странами, городами. Что еще? Популярность товаров и категорий товаров по объему товарооборота... И посмотреть все это можно для любого предприятия, города страны, товара или категории за любой период времени - это просто фильтр. Впрочем, чего гадать? Хрен ли думать - трясти надо!

Уже вполне можно подвести некоторые итоги. Итак, возможности JS в плане написания клиентской части ОГРОМНЫЕ! Я ожидал гораздо худшего. И не используются они, судя по всему, вообще никем, и никогда - вот уж этого тем более не ожидал. Так что, как говорил Аркадий Райкин, гляжу я на вас и думаю: ну и дураки же вы все!
dozen
Member
62/8696 ответов
23 года на iXBT, с августа 2001
Чаще пишет в "Программирование" (78%)
Канада, СПб => Торонто => ?
Web-страница
Инфо
d
dozen Member
16 лет назад / 11 августа 2009 18:15
Sioln
Вы чего хотите то?

Обычная для него публичная мастурбация. Он получает удовлетворение от процесса, а не от результата.

Тему надо в 26-ю конфу, там энтузиасты всё в подробностях дяде Вове объяснят. Начнут, пожалуй, с CSS.


Ему, наверное, кто-то подарил подшивку журнала Хакер за 2003-й год (покупать свежий ему не по карману) , откуда он узнал про JavaScript. До AJAX он еще не дочитал, это в декабрьском номере, а он пока на февральском.

P.S. "Палитры" он меняет, я щас штанишки описаю! Поллитр поменяно, однако, явно немало...
Vladimir Rybinkin
заблокирован в форуме
Автор темы
48/3751 ответов
24 года на iXBT, с ноября 2000
Чаще пишет в "Программирование" (67%)
Инфо
V
Vladimir Rybinkin заблокирован в форумеАвтор темы
16 лет назад / 12 августа 2009 09:39
dozen
А, черт! А я как раз пригласил в "Крошке"... Впрочем, а не зря ли? По делу "энтузиасту" явно сказать нечего?

All
Финиширую с базой: еще малек подрезалась, да оптимизировались индексы. Кроме того, решил все-таки пожалеть клиента: дать элементам необходимые ссылки окружения (чтобы не искал тупо, как в прошлом тесте). Получается такая структура:

Морда (Northwind). Дети - группы (массивы) объектов одного класса: Cities, Companies, Countries, Customers, Employees, Orders, Persons, Products, Shippers, Suppliers. Каждая группа - виртуальная страница с собственным форматом выдачи. Не уникальным - скажем, Customers или Suppliers принадлежат классу Company и, разумеется, имеют его формат. Некоторые классы (например, Addresses, Order Details) вообще не имеют собственных страниц - ни персональных, ни групповых. Класс Persons (а в первоначальном замысле и Orders) имеют лишь групповую странцу, остальные - оба вида. Классы имеют (как правило) два формата выдачи: краткий (для форматирования объекта на "чужих" страницах) и развернутый (на своей "персональной"). Объектам класса Order разрешил все-таки иметь персональную страницу. Как же все-таки эту скотину заставить использовать HREF только для STYLES?

Классы - от простого к сложному (впрочем, особо простых что-то не просматривается ):

Persons
Только группа, персональных страниц не имеет. Заголовок (Persons) - ссылка на морду. Одна таблица детей формата: LastName, FirstName, Title, Company (CompanyName, ссылка, для Employees - морда).

Orders
Группа объектов с персональными страницами. Заголовок (Orders) - ссылка на морду. Одна таблица детей формата: OrderID (ссылка), Customer (CompanyName, ссылка, фильтр), Employee (FirstName+LastName, ссылка, фильтр), OrderDate (до начала указанного диапазона дат строки таблицы "подкрашиваются", после диапазона - не выводятся).

Order
Персональная страница объекта класса Order. Заголовок (OrderID) - ссылка на группу Orders. Выводимые данные: Customer (CompanyName, ссылка), Employee (FirstName+LastName, ссылка), Shipper (CompanyName, ссылка), OrderDate, RequiredDate, ShippedDate, Freight. Имена атрибутов - ссылки на групповые страницы (если они существуют). Одна таблица детей формата: Product, (ProductName, ссылка), Category (CategoryName, ссылка), UnitPrice, Quantity, Discount, Sum (считается в процессе генерации страницы). После таблицы - расчетное значение TotalSum (включая Freight с премией или штрафом, как было указано выше по ветке).

Employees
Группа объектов с персональными страницами. Заголовок (Employees) - ссылка на морду. Одна таблица детей формата: Name (TitleOfCourtesy+FirstName+LastName, ссылка), Title, HomePhone.

Employee
Персональная страница объекта класса Employee. Заголовок (TitleOfCourtesy+FirstName+LastName) - ссылка на группу Employees. Выводимые данные: Title, Address, HomePhone, BirthDate, HireDate, Chief (TitleOfCourtesy+FirstName+LastName, ссылка), Notes. Одна таблица детей. Формат таблицы - как для Orders (без столбца Employee).

Products
Группа объектов с персональными страницами. Заголовок (Products) - ссылка на группу Categories (не на морду!). Одна таблица детей формата: Product (ProductName, ссылка), Category (CategoryName, ссылка, фильтр).

Categories
Группа объектов с персональными страницами. Заголовок (Categories) - ссылка на морду. Одна таблица детей формата: Category (CategoryName, ссылка).

Companies
Группа объектов с персональными страницами. Заголовок (Companies) - ссылка на морду. Одна таблица детей формата: Company (CompanyName, ссылка), City (CityName, ссылка, фильтр), Country (CountryName, ссылка, фильтр).

Cities
Группа объектов с персональными страницами. Заголовок (Cities) - ссылка на морду. Одна таблица детей формата: City (CityName, ссылка), Country (CountryName, ссылка, фильтр).

Countries
Группа объектов с персональными страницами. Заголовок (Countries) - ссылка на морду. Одна таблица детей формата: Country (CountryName, ссылка).

Персональные страницы Product, Category, Company, City, Country - там совсем сложно получается. Как-нить на свежую голову.
Тема перенесена 12.08.2009 10:49 moderator-Bio из форума "Программы: Интернет"
Джамаль
Member
525/22406 ответов
24 года на iXBT, с июня 2000
Чаще пишет в "Общий" (21%)
Россия, Самара
Инфо
Д
Джамаль Member
16 лет назад / 12 августа 2009 11:07
Кто здесь?
dozen
Expert
6394/8697 ответов
23 года на iXBT, с августа 2001
Чаще пишет в "Программирование" (78%)
Канада, СПб => Торонто => ?
Web-страница
Инфо
d
dozen Expert
16 лет назад / 12 августа 2009 17:02
Не для ВР, а для общего образования любопытных, расскажу немного о GWT (Google Web Toolkit).

Эта библиотека необычна тем, что включает в себя компилятор байт-кода JVM в Javascript. Буквально. То есть код страницы пишется на Java -- есть кучка классов, описывающих Layouts и элементы ввода. Затем получившийся Java-code пропускается через GWT-compiler, и тот создает идентичный Javascript-code.

Что интересно, если не нужны вызовы к серверу (AJAX), то получившийся набор HTML/JS можно деплоить на любой голый web server (т.е. без жабы), и код будет работать. Если нужны, то жаба тоже не обязательно -- достаточно любого тула (например, PHP), способного ответить на JSON.

Есть всякие удобства, типа AJAX-методов и интернационализации.

Куча народа создает свои компоненты к GWT. Я лично использовал чудные сторонние компоненты построения графиков.

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

Примеры в работе можно посмотреть здесь.

Я, вообще, не UI-guy. Но с помощью GWT добавил к моим приложениям морды за пару дней.

Исправлено: dozen, 12.08.2009 17:20

arsa
Member
455/7905 ответов
25 лет на iXBT, с января 2000
Чаще пишет в "Интернет" (68%)
США, Редмондия
Web-страница
Инфо
a
arsa Member
16 лет назад / 12 августа 2009 17:10
кстати есть Ext GWT - вообще супер библиотека
dozen
Expert
6396/8699 ответов
23 года на iXBT, с августа 2001
Чаще пишет в "Программирование" (78%)
Канада, СПб => Торонто => ?
Web-страница
Инфо
d
dozen Expert
16 лет назад / 12 августа 2009 17:14
arsa
Ext GWT - вообще супер библиотека

но стоит денег

однако, ВР, несомненно, стоит ознакомиться. дабы обрести (недостижимый) идеал.
arsa
Member
456/7907 ответов
25 лет на iXBT, с января 2000
Чаще пишет в "Интернет" (68%)
США, Редмондия
Web-страница
Инфо
a
arsa Member
16 лет назад / 12 августа 2009 18:03
dozen
да, если не хочется ввязываться в GPL, то стоит денег.
раньше был ещё LGPL (в версии 2 самого ext), но к сожалению он немного не подходит под реалии веба.

в результате (если всё делать абсолютно честно) реально не получится разработать прототип на GPL версии, показать начальству, а уже потом купить коммерческую версию.
Hedin
Member
320/2104 ответов, #13 в рейтинге
19 лет на iXBT, с декабря 2005
169 фото на iXBT.photo
Чаще пишет в "Политика" (36%)
Россия, Питер
Инфо
H
Hedin Member
16 лет назад / 12 августа 2009 18:06
dozen
но стоит денег

gwt-ext выглядит вроде не хуже, и под LGPL.

Начальство впечатлилось, теперь вот придётся прототип приложения переводить с JSF/RichFaces/SWF на GWT/GWT-Ext.
Благо не так много наваять успели.

У GWT есть одна существенная особенность - это уже полноценный клиент с RPC получается, в отличии от простого Web-приложения. А трёхзвенку таки сложнее программировать чем двухзвенку...
arsa
Member
457/7908 ответов
25 лет на iXBT, с января 2000
Чаще пишет в "Интернет" (68%)
США, Редмондия
Web-страница
Инфо
a
arsa Member
16 лет назад / 12 августа 2009 18:38
Hedin
да, конечно сложнее. но есть несколько упрощающих решений, от asp.net ajax (в смысле классов оборачивающих ajax веб сервисы, уверен что для java тоже есть что то похожее), до Ext.Direct http://extjs.com/products/extjs/direct.php

но конечно контракт (веб сервис) всё равно приходится описывать - в базу грязными руками никто не пустит
Если Вы считаете это сообщение ценным для дискуссии (не обязательно с ним соглашаться), Вы можете поблагодарить его автора, а также перечислить ему на счет некоторую сумму со своего баланса (при отзыве благодарности перечисленная сумма не будет вам возвращена).
Также вы можете оценить сообщение как неудачное.
В течение суток можно 20 раз оценить сообщения разных участников (купите Premium-аккаунт, либо оплачивайте оценки сверх лимита).
Страницы:Кликните, чтобы указать произвольную страницуназад1234567565758далее
Тема закрыта (moderator-Kid: тема исчерпала себя (уже давно) и стала откровенно бессмысленным флудом (в последнее время))