Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #121 (permalink)  
Старый 01.07.2014, 12:45
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
Если все-таки надумаешь, сделай, плиз, чтобы можно было выбирать с дата-биндингом или без.
Конечно, это скорее всего будет 1-2 новых директивы для сахара и дополнительный модуль в Snakeskin.live.

Цитата:
Дай линки на примеры
К сожалению не дам, т.к. биндинг у меня реализует мой проприетарный фреймворк и находится он в закрытом репозитарии, но могу примерно написать:

{template Widget.prototype.tpl()}
    hello {this|bind 'name'}
{end}


Widget.prototype.foo = function () {
    this.name = 'Вася' // шаблон сам сделает обновление
};


Snakeskin.Filters.bind = function () {
    // Тут для this.что-то создаётся set и get методы
};
__________________
kobezzza
code monkey
Ответить с цитированием
  #122 (permalink)  
Старый 01.07.2014, 12:50
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Вставка текста и парсинг его браузером быстрее, чем создание DOM элементов

Да нифига подобного. Предположим что есть таблица из 1000 строк, в модели добавилась только одна строка. Шаблонизатор заточенный под клиент(reactive к примеру) добавит только одну строку, шаблонизатор кобеззы выплюнет 1001.

Что касается разовой генерации html то вот замеры скорости. innerHtml разве что в IE предпочтителен.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 01.07.2014 в 13:41.
Ответить с цитированием
  #123 (permalink)  
Старый 01.07.2014, 12:54
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
шаблонизатор кобеззы заменит всю 1000
Ну, Snakeskin я юзаю для первичной генерации тела шаблона, а дальнейшая работа с ним у меня делается другой либой, так что заменять 1000 я не буду (примерный пример есть выше)

Но вообще твой позыв я услышал, я добавлю механизм из коробки, но он будет опциональным.

ЗЫ: Ребят, отдельная просьба, если вы юзаете мои разработки, то не молчите, т.к. иначе я веду разработку только с оглядкой на свои требования. Вот например огромное спасибо melky за интеграцию Snakeskin с Express: сейчас она выглядит неуклюже, но мы обсудили пути улучшения и уже совсем скоро этих проблем не будет.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 01.07.2014 в 12:59.
Ответить с цитированием
  #124 (permalink)  
Старый 01.07.2014, 16:22
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от DjDiablo
Да нифига подобного
Сообщение от nerv_
Вставка текста и парсинг его браузером быстрее, чем создание DOM элементов через конструкторы.
Другое дело дата-биндинг и обработчики событий. Разумеется, нет смысла менять весь html, если требуется изменить значение атрибута style. Но, это уже дата-биндинг.
да, быстрее

Сообщение от DjDiablo
Предположим что есть таблица из 1000 строк, в модели добавилась только одна строка. Шаблонизатор заточенный под клиент(reactive к примеру) добавит только одну строку, шаблонизатор кобеззы выплюнет 1001.
выплюнет 1, кот. будет зааппенден к остальным
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #125 (permalink)  
Старый 01.07.2014, 19:53
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

будет зааппенден к остальным
Интересно где ты будешь искать эти остальные
И как удаление gпары строк будешь отрабатывать? что шаблонизатор выплюнет в этом случае ?
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 01.07.2014 в 23:58.
Ответить с цитированием
  #126 (permalink)  
Старый 01.07.2014, 20:29
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от DjDiablo Посмотреть сообщение
будет зааппенден к остальным
Интересно где ты будешь искать эти остальные
И как удаление gпары строк будешь отрабатывать, что шаблонизатор выплюнет в этом случае
Мне казалось это очевидно

{template Widget.prototype.tplRow(params)}
    ...
{/}

{template Widget.prototype.tpl(list)}
    <div class="foo">
        {forEach list => el}
            {call this.tplRow(el)}
        {/}
    </div>
{/}


Widget.prototype.appendRow = function (params) {
    this.find('.foo').append(this.tplRow(params));
}
__________________
kobezzza
code monkey
Ответить с цитированием
  #127 (permalink)  
Старый 01.07.2014, 21:08
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Ты же блин в конец просто вставил, об этом речи не идет

Задача звучала примерно так
между 13м и14м появило 10 новых элементов, а начиная с 112, 20 элементов исчезли.

Неужели не ясно в чем заключается ограничение шаблонизатора
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 01.07.2014 в 21:21.
Ответить с цитированием
  #128 (permalink)  
Старый 01.07.2014, 21:12
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от DjDiablo Посмотреть сообщение
Ты же в конец вставил блин.
Что если между 13м и14м появило 10 новых элементов, а начиная с 112, 20 элементов исчезли.
В чём проблемы, или после появления data-binding все забыли как раньше писали код?)

атрибуты, классы, делегирование, т.е. проблемы тут нет, просто другой подход к организации кода.

Цитата:
Неужели не ясно в чем заключается ограничение шаблонизатора
Причём тут шаблонизатор? То что Snakeskin не умеет сам что-то биндить - это я сказал сразу. Но если ты утверждаешь, что логика, которую реализуют всякие Ангуляры нельзя написать как простое АПИ на уровне виджета, то тут ты не прав

Посмотри тот же нокаут, где все биндинги описываются как дата-атрибуты, а в качестве шаблонки юзается простой jQ template, который тоже плюётся текстом и не про какие биндинги не знает

Тут уже какой подход больше по душе.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 01.07.2014 в 21:27.
Ответить с цитированием
  #129 (permalink)  
Старый 01.07.2014, 22:05
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Цитата:
В чём проблемы, или после появления data-binding все забыли как раньше писали код?)
Блин да если написать как раньше то шаблонизатор вообще непотребуется

Цитата:
Но если ты утверждаешь, что логика, которую реализуют всякие Ангуляры нельзя написать как простое АПИ на уровне виджета, то тут ты не прав
Я этого не утверждал, еще как можно

Но по итогу на reactive решение обговоренной задачи уместится в несколько строчек.

{{#superheroes:num}}
    <tr>
      <td>{{ num + 1 }}</td>
      <td><a href='{{info}}'>{{name}}</a></td>
    </tr>
{{/superheroes}}

И здесь уже есть все, и удаление строк и добавление в любое место произвольного количества, и любая комбинация из удалений, изменения, и добавлений.
А на snakeskin нужен бубен, цикл там есть но он абсолютно бесполезен для поставленной задачи.

Собственно я уже забыл о чем спорю и зачем ))))
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 01.07.2014 в 22:43.
Ответить с цитированием
  #130 (permalink)  
Старый 01.07.2014, 22:28
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Но суть твоей мысли я понял, понашмякать виджетов использующих низкоуровневый шаблонизатор snakeskin а дальше собирать интерфейс из виджетов реализовав биндинг силами виджета. Здесь все нормально я делаю все тоже самое.

При использовании snakeskin все вопросы по быстродействию переносятся с шаблонизатора на разработчика виджета.
Последний момент и является камнем приткновения так как я считаю что производительность это забота шаблонизатора (по образцу react и reactive) а не разработчика виджета.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 01.07.2014 в 23:07.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
express-snakeskin - view через snakeskin для express melky Ваши сайты и скрипты 5 10.06.2014 11:35