[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