masterspammer (masterspammer) wrote,
masterspammer
masterspammer

Category:

JS

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

Что там - оконный интерфейс на JS и довольно удобный текстовый редактор в нём (картинка - отсюда). Основная идея интерфейса - пишется код, а не разметка (примерно как SWING на Java или там AWT), разметка спрятана глубоко и не факт, что она есть (почему бы просто не рисовать на Canvas с тем же интерфейсом или вообще на аппаратном экранчике). Основная идея редактора - редактируется структура текста, а не внешний вид, внешний вид делается стилями и часто вообще другим человеком. Средства работы со структурой и (готовыми) стилями прилагаются; также в комплекте удобные фишечки типа автозамены, автоформата и древовидной отмены (привет, nabbla1).

1. эта штука работает спустя почти 12 лет после написания, несмотря на местами нетривиальный код.
2. подобного мало, а в совокупности свойств - я не нашёл
3. чего-то подобного от интерфейса мне хочется (утилитарно) часто, в итоге я отказываюсь от того, чтоб выложить ну например мои эксперименты с картинками или другие штуки, требующие GUI.
4. внутри лютый говнокод (на 50% из-за IE, см. ниже, а другим 50 нет прощения), так что даже показывать "как есть" не хочется;

Начал разбираться и переписывать на ООП со стороны редактора, запнулся об отладочный костыль двенадцатилетней давности для редкого случая, делающий этот случай принудительно всегда.

--
Про IE - когда-то давно у него, насколько помню, было два сборщика мусора - для кода JS и для DOMа. Пара ссылок туда-обратно (что более чем просто сделать) и память течёт. Популярность метода - самому создать элемент, самому назначить ему id и самому же по id обращаться, вместо того, чтобы сохранить ссылку и работать с ней - как мне кажется, из-за этого. У меня был другой подход - ссылки из DOM на js лежали в небольшом числе элементов в прогнозируемых местах и при удалении элемента очищались. Тем не менее, сделать объект, например, редактор, который сам знал, где у него что лежит, не получалось, в итоге объектов я не делал и там просто большая куча функций, которые сам знают, где что смотреть - вот это было зря. Правильнее было доступ к элементу обернуть, чтоб там внутри была шняга с getElementBySomeShit или поиск вот тех "прогнозируемых место" в контейнерах и использовать сомнительные прелести прототипного ООП, а теперь бы я исправил эту обёртку и всё.
Tags: javascript, ХочетсяСтранного
Subscribe

  • (no subject)

    Лазерный рефлектометр (виброрефлектометр) - почти что священный Грааль (SpellChecker подсказывает "грабель", ну да, пусть будет "свяженный Грабель")…

  • Вспоминаю Гофмана и что-то бессытдно ржу

    Собственно Золотой Горшок - одна ведьма там возникла от взаимодействия одного из драконьих перьев «с какой-то свекловицей». С какой-то ЧЧЧЕГО??…

  • Охота пше* неволи

    Взял фанерины на боковины - а они кривые, две вообще расслоились (о чём я благополучно позабыл). Купил, разрезал, взгромоздил на велик и еле…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments