Если нам не нравится это для уровня представления, то почему мы терпим это для уровня поведения? - PullRequest
3 голосов
/ 13 апреля 2010

Предположим, что CSS, как мы знаем, никогда не был изобретен, и самое близкое, что мы могли получить, это сделать:

<script>
// this is the page's stylesheet
$(document).ready(function(){
    $('.error').css({'color':'red'});
    $('a[href]').css({'textDecoration':'none'});
    ...
});
</script>

Если бы именно так нас заставляли писать код, смирились бы мы с этим? Или каждый разработчик на Земле будет кричать на производителей браузеров, пока они не стандартизируют CSS или хотя бы какой-нибудь декларативный язык стилей?

Возможно, CSS не идеален, но, надеюсь, очевидно, что он лучше, чем находи вещи, делай вещи методом, показанным выше. Итак, мой вопрос заключается в следующем. Мы увидели и попробовали славу декларативного связывания с CSS, так почему же, когда дело доходит до поведенческого / интерактивного уровня, все сообщество JavaScript кажется самодовольным, продолжая использовать грязный процедурный метод, описанный выше? Почему, например, это считается многими лучшим способом сделать что-либо:

<script>
$(document).ready(function(){
    $('.widget').append("<a class='button' href='#'>...</div>");
    $('a[href]').click(function(){...});
    ...
});
</script>

Почему нет массового толчка для получения файлов XBL2.0 или .htc или своего рода декларативного синтаксиса поведения , стандартно реализованного в браузерах? Это признано необходимостью другими специалистами по веб-разработке? Есть ли что-нибудь на горизонте для HTML5?

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

Ответы [ 2 ]

1 голос
/ 13 апреля 2010

** Почему, например, это считается многими лучшим способом сделать что-то: $ (Документ) .ready (функция () { $ ( 'Виджет') добавить ( "..."). $ ( 'А [HREF]') нажмите кнопку (функция () {...}). ... }); **

Потому что это не просто поведение. Правильный способ выполнения предоставленного вами примера - простой HTML. То, что вы описываете, подходит для наслоения дополнительного поведения в форме постепенного улучшения. Это неотъемлемо сложно. Это поведение поведения.

0 голосов
/ 13 апреля 2010

JavaScript допускается только потому, что он везде. Если бы это был действительно хороший язык, то каждый и его собака не использовали бы его для создания эзотерических DSL, которые изо всех сил стараются заставить вас забыть, что вы используете JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...