Pull to refresh
89
0
Хайрулин Василий@Sirian

Разработчик

Send message
Писал когда то статью про this в javascript — habrahabr.ru/post/149516/
Там есть и возможность проверить свои навыки и потренироваться в угадывании результата
тяжело словами объяснить. проще будет потом видео заснять, чтобы объяснить. там не всегда такое происходит (а например если скроллил, а потом навел мышкой еще до того как скролл пропал)
мышку в самый край браузера (в моем случае получается и в край всего экрана) переведи. и у тебя под мышкой появится скролл. Собственно часто при наведении на эту кнопку получается так, что мышка наползает на область скролла и скролл перекрывает кнопку
Меня только ее расположение не очень устраивает, в хроме на маке наполовину перекрывается скролом:
image
хоть юзерскриптом перетаскивай
быстрее патентуйте идею, если вас уже какая нибудь корпорация не опередила)
Кроме того, для таких примеров:
main.swig
{% block test %}
{% endblock %}


tpl.swig
{% extends 'main.swig' %}

{% block test %}
inherit
{% endblock %}


и main.ect
<% content 'test' %>


tpl.ect
<% extend 'main.ect' %>

<% block 'test' : %>
inherit
<% end %>


у меня получается
ECT: 386ms
Swig: 16ms
да, уже увидел это в документации. в личку написал вопрос про задание значения по умолчанию для блока и вызов родителя в блоке
Дабы не разводить переписку в комментах, посмотри пожалуйста habrahabr.ru/post/151591/#comment_5144568 и отпиши в личку — там разберемся с бенчмарком
Кроме того,
main.ect:
<% block 'test' : %>
main
<% end %>


tpl.ect:
<% extend 'main.ect' %>

<% block 'test' : %>
inherit
<% end %>


добавляю в ect.js вывод html.length:
module.exports.step = function (done) {
            renderer.render('tpl.ect', tplData, function(err, html) {
                console.log(err, html);
                done();
            });
};


выводится undefined и пустая строка, а не undefined и «inherit»

ЧЯДНТ?
и еще вопрос, это нормально, что prepare и step в тестах для ect выглядят одинаково?
module.exports.prepare = function (data, done) {
	tplData = data;
	renderer.render('tpl.ect', tplData, function(err, html) {
		done();
	});
};

module.exports.step = function (done) {
	renderer.render('tpl.ect', tplData, function(err, html) {
		done();
	});
};
Скачал benchmark, оставил только swig и ect. На приведенном примере
ECT:  513ms
Swig:  1059ms


Добавил main.swig и main.ect, содержащие два пустых блока (test и test2). в tpl файлах сделал extend от этих main шаблонов и добавил переопределение блоков (test2 также переопределялся в пустой блок, а test переопредялся в старое содержимое файла tpl).
ECT:  874ms
Swig:  1087ms


Swig лишь чуть чуть замедлился, а ECT более чем в полтора раза. Если сделать еще один промежуточный уровень наследования, то разница получается совсем крохотной между шаблонизаторами.
Вывод — коробочные тесты не полные, нужно проверять на более полном функционале, а не на hello, world
Из js шаблонизаторов — мне больше всего по душе пришелся swig. Синтаксис такой же как в twig и в django, есть наследование, есть возможность создавать свои теги и фильтры. Главный минус swig для меня — не поддерживаются вложенные блоки (issue) и неизвестно когда будут поддерживаться.
что от mail.guard, что от qip.guard (другие не пробовал) — рабочий комп начинает сразу нереально тормозить.
Специально установил их для проверки.
Результат: без этих программ даже ie8 запускается меньше чем за секунду. А при любом установленном guardе — секунд 5-10 и более. даже антивирус касперского и то не так замедляет систему.
Благо 99% времени я провожу за macbook и мне не приходится сталкиваться с различными guardами
Поддерживаю. Почему то каждый второй (утрирую) javascript программист пишет свою статью про наследование в javascript. Лично мне тоже больше всего понравилось читать статьи Дмитрия Сошникова — в них все подробно и хорошо расписано.
В частности прямые ссылки на две статьи про ООП в javascript:
dmitrysoshnikov.com/ecmascript/ru-chapter-7-1-oop-general-theory/
dmitrysoshnikov.com/ecmascript/ru-chapter-7-2-oop-ecmascript-implementation/
> он “помешался” на версии 2.1, которая даже бета версии не имела
уже RC2 вышла даже
а вообще — хорошая работа, спасибо!
Попробовал воспользоваться обнаружил багу — на главной странице мониторинга при очередном request (если включен мониторинг) схлопываются раскрытые элементы
точнее не 500 ошибку, а страницу с ошибкой, но код ответа будет 200

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity