[Moscow.pm] Уж не знал что до такого дойду.
Ivan B. Serezhkin
ivan на serezhkin.com
Сб Июл 19 06:17:32 PDT 2008
Привет.
Господа, агитирую вас за активнейшее использование жабаскрипта в своих
веб аппликухах.
Я тут на досуге попробовал.
Ваня Широков посоветовал использовать http://script.aculo.us/
Я внимательно посмотрел на это дело, и обнаружил, что использовать такие
фреймворки легко. Скачал нужные .js, положил в репозиторий и попробывал
применить исчезающие/появляющиеся дивы. вообщем минут через 40 в моей
админке дерево публикаций научилось сворачиватся/разворачиватся.
Заодно я обнаружил. что $() - это чиноним для document.getelementById,
очень понравилось.
Потом я прочитал про XMLHTTPRequest, то что элементу можно прописывать
innerHTML я знал и до этого. Сделал одну формочку на аяксе, понравилось.
Jemplate у меня использовать не получилось, у меня слишком уж сильно
используются разные хитрости в ttk. По этому просто гоню html и налепляю
на нужные элементы.
Через некоторое время файлик admin.js разросся, начал походить на
фреймворк. Вместо hidden полей, я стал использовать объект dispatcher, в
котором хранить состояние страницы и необходимые callbacks.
Джаваскрипт конечно язык ублюдочный, но всё же понятие ссылка там есть,
то есть жить можно.
Через сутки игры с http://scripteka.com/ у меня появилось подобие
рельсовского фреймворка, тоесть каждый видимый объект не только себя
может отрисовать, но и хэндлить свои ajax события сам. Вместо гнусных
плюсиков для добавления удаления тэгов с документа я применил drag&drop,
потом применил его для создания связей между документами. Всё летает,
шевелится, моргает во время событий, крутит вебдванольными крутилками и
работает быстро.
Конечно, на мордусайта такое пускать нельзя, там должен поработать
профессиональный джаваскриптизёр, но для начала надо попробовать сделать
это самому, это не сложно, и очень эффективно. Берёшь фаерфокс с
фаербагом и инспектишь нужные элементы, сразу становится ясно что с ними
делать, берёшь и делаешь.
Кстати, куча мсассивов в дом модели на самом деле массивами не являются,
а явкляются коллекциями, и for( x in array) на них не работает. всё
жутко неудобно, но ждать когла в фаерфоксе будет парратовский
ecmascript - это терять время.
Я думаю, если мы начнём делать наши продукты современнее, народ к нам
потянется.
Начать стоит просто с применения скрывающихся дивов и отправки
XMLHTTPRequest на сервер, а там понравится.
--
Ivan B. Serezhkin
Подробная информация о списке рассылки Moscow-pm