---
title: "DHTML с Dojo. Ни и пара замечаний про CSS."
description: "1 Яваскрипт появился в 95 году. В декабре вышла \"стабильная\" версия, которую и презентовали Нетскейп..."
author: "akost"
published: "2009-05-09T08:08:09+00:00"
modified: "2009-05-09T08:08:09+00:00"
locale: "ru"
canonical_url: "https://yvision.kz/post/dhtml-s-dojo-ni-i-para-zamechaniy-pro-css-10311"
markdown_url: "https://yvision.kz/post/dhtml-s-dojo-ni-i-para-zamechaniy-pro-css-10311/markdown"
site_name: "Yvision.kz"
---

# DHTML с Dojo. Ни и пара замечаний про CSS.

> 1 Яваскрипт появился в 95 году. В декабре вышла "стабильная" версия, которую и презентовали Нетскейп...

1 Яваскрипт появился в 95 году. В декабре вышла "стабильная" версия, которую и презентовали Нетскейп и прочие СанМикросистемсы. Изначально скриптовый языка назывался LiveWire. Тупо, где в названии слово "скрипт". Переименованый LiveScript недолго просушествовал, тк было чуть менее чем очевидно, что козырная Java привлечет клиентов и позволит воспользоваться славой АППЛЕТОВ писаных на Java`e.(Вы про них знаете? Я удивлен) Но в то время это работало.

Итак, в 96 году можно спокойно кодить на JavaScripte. К сожелению, не все браузеры одинаково полезны и некоторые старожилы говорят, что функция substring() работала не совсем корректно. А уж скорость яваскрипта и использование памяти!!

К счастью сейчас многие проблемы уже решены.

Но не все, далеко не все...

И вот что я хочу вам сообщить свои советы. Особые, уличные советы:

1 Используйте фреймворки.

Избавьтесь от document.getElementById(). Замените на dojo.byId. или $(). Да не только приятные сокращения функций. Фреймворки позволяют избавиться от кодинга под определенный браузер. Пишите сразу на все, будучи кросплатформеннее и лаконичнее. Вызов Ajax`овый средствами голого яваскрипта займет у вас много строчек, добавление кроспалтформенности заставит добавить еще несколько строк. Если это действительно хороший Ajax, то у вас строчек 20 уйдет на его написание. Не проще ли написать dojo.xhr(). Вся мощь аякса в 3 буквах. (Что такое xhr? Да это же XMLHTTPRequest, по русски, запрос XML`а по протоколу HTTP).

2 Поймите смысл эвент бублинга.

Когда вы вешаете обработчик на onclick, то происходит event(событие в жизни странички). Но это событие всей страницы.  поделится событием в своей жизни со своими родителями(body и промежуточные мамы-папы)

Что это значит? Да просто  будет работать так как надо. То есть сначала вылетит ахтунг, а потом секси боди. Вряд ли вы этого захотите в реальном проекте, поэтому используйте решения наподобии dojo.stopEvent() и dojo.preventDefault(). Просто и экономично вам помогут те же фреймворки. Про всякие dojo.connect(), dojo.publish(), dojo.hitch() и им подобные я пока говорить не буду.

3 Осознайте кривость аттрибутов.

HTML развивается. Появился XHTML. что же значит Ха впереди? Может экстрим? может экскремент? может экскаватор?

Все проще. Это значит, что наш HTML приблизился к XML`у. А XML не любит аттрибуты. Злые они. Что вообще такое аттрибуты? Это style и id в Div too. Конечно можете писать хоть . В целях обратной совместимости браузер и не такое говно проглотит, но валидатор вас обосрет. А что делать если валидатор ругается на dojoType? Создавайте их программно. Не поняли? Тогда нафиг вам доджо. Ну потом может быть расскажу.

4 Циклы и анонимные функции, которые ждут, чтобы их выполнили.

Как вы думаете, что покажет функция

for (var i=0; i   Адын Дыва Тры

Внимание, вопрос! А нахрена нам первый див? Убираем смело.

 Раз Два Три

Класситис(староангл "classitis") обозначает загруженность class`ами.

 Мерседес БМВ БМП Тачка крутого стритрейсера

И брюки превращаются...

 Лада Калина Лучшая Машина

7 Чтите доктайп.

Это такая странная надпись вроде

```

```

Это та самая вещь, которая определит, что же вы шлёте в браузер, да будут долги дни его! Ничего не понятно? Хммм...

Такая маленькая подборочка

---

Source: [https://yvision.kz/post/dhtml-s-dojo-ni-i-para-zamechaniy-pro-css-10311](https://yvision.kz/post/dhtml-s-dojo-ni-i-para-zamechaniy-pro-css-10311)