Ну в таком случае, залейте исходники на гитхаб, создайте пару презентаций на SlideShare и время покажет интересно ваше решение кому — либо или нет ) Желаю удачи!
Вот в каких конкретно проектах? Могли бы вы привести ссылки?
Событийная логика сама по себе отторжения у меня лично не вызывает и ничего странного я в ней не вижу. В частности похожий принцип применяется в механизме под названием Progressive Enhancement.
У меня после прочтения двух ваших статей возникла пара вопросов:
1. Где это применяется (если вообще применяется)? Теория она штука хорошая, но без реальных работающих проектов созданных на основе предлагаемого вами подхода, это просто не работает…
2. Некоторые ваши доводы, создают противоречивые чувства (а именно: хранение всего в DOM, инлайн обработчики в аттрибутах HTML — элементов и т. п.), не обижайтесь, но создается ощущение что все мы когда — то уже проходили эту стадию когда все кажется таким простым и понятным, когда только начинали изучать JavaScript…
Почему вы так решили? Сейчас полным ходом идет рефакторинг первой версии, и мы готовимся выпустить следующую версию с гораздо более широким функционалом.
Во — первых isArray присутствует лишь в последних версиях браузеров, во — вторых isArray это вызов метода (хоть и нативного), я думаю он будет немного медленнее чем обработка конструкции instanceof.
В свое время для асинхронной эвалюации абстрактного синтаксического дерева, я также искал решение данной проблемы, в результате набрел вот на это: zef.me/3420/async-foreach-in-javascript и по мотивам сделал свой собственный вариант forEachAsync:
function forEachAsync(list, iterator, ret) {
if (!(list instanceof Object)) return ret();
var keys, key, length, last;
var i = -1, calls = 0, looping = false;
if (list instanceof Array) {
length = list.length;
} else {
keys = Object.keys(list);
length = keys.length;
}
last = length - 1;
var resume = function() {
calls += 1;
if (looping) return;
looping = true;
while (calls > 0) {
calls -= 1, i += 1;
if (i === length) return ret();
key = (keys ? keys[i] : i);
iterator(list[key], function(stop) {
if (stop === true) ret();
else resume();
}, key, i, last);
}
looping = false;
};
resume();
}
Добавил отображение AST — шаблона в консоль. Для просмотра дерева скомпилированного шаблона, выберите из выпадающего списка «show result as» — «AST» и нажмите кнопку «Execute».
Ясно. Ближайших планов по портированию Histone на .Net у нас нет, но мы с радостью поможем вам портировать его. Мы можем создать документацию по формату скомпилированного шаблона за пару дней — это не проблема. Я отпишусь в этой ветке, как только это будет закончено.
Рассматривалась, я лично большой поклонник XSLT, но при всех очевидных достоинствах данной технологии она имеет ряд существенных недостатков:
1. Браузер поддерживает лишь ограниченный функционал языка XSLT, а потому нужно быть очень аккуратным с тем, какие инструкции используются.
2. Браузер поддерживает лишь XSLT 1, в то время как на сервере возможно использование XSLT 2, возможности которого существенно шире.
3. На практике было выявлено, что XSLT гораздо сложнее в понимании дизайнерами шаблонов, а по нашему мнению именно они должны заниматься созданием и поддержкой шаблонов.
Конечно ничего не бывает сразу, но планы создания плагинов для популярных IDE у нас есть. Кроме того мы очень расчитываем на поддержку со стороны независимых разработчиков.
Событийная логика сама по себе отторжения у меня лично не вызывает и ничего странного я в ней не вижу. В частности похожий принцип применяется в механизме под названием Progressive Enhancement.
1. Где это применяется (если вообще применяется)? Теория она штука хорошая, но без реальных работающих проектов созданных на основе предлагаемого вами подхода, это просто не работает…
2. Некоторые ваши доводы, создают противоречивые чувства (а именно: хранение всего в DOM, инлайн обработчики в аттрибутах HTML — элементов и т. п.), не обижайтесь, но создается ощущение что все мы когда — то уже проходили эту стадию когда все кажется таким простым и понятным, когда только начинали изучать JavaScript…
1. Браузер поддерживает лишь ограниченный функционал языка XSLT, а потому нужно быть очень аккуратным с тем, какие инструкции используются.
2. Браузер поддерживает лишь XSLT 1, в то время как на сервере возможно использование XSLT 2, возможности которого существенно шире.
3. На практике было выявлено, что XSLT гораздо сложнее в понимании дизайнерами шаблонов, а по нашему мнению именно они должны заниматься созданием и поддержкой шаблонов.