Pull to refresh
192
0
Алексей Гришин @GRaAL

Разработчик широкого профиля

Send message
Нет. Ссылка на автора сразу под иллюстрацией.
Я очень постараюсь, но, к сожалению, у меня действительно невысокая скорость написания и редактирования. 2-3 недели, боюсь, придется подождать.
Добрый день.
Совсем недавно делал похожее для mithril.js — тоже хотелось обновлений в реалтайме без перезагрузки страницы, чтобы не терять состояние. Я тогда за основу взял livereload, т.к. в целом он уже много чего умеет — у него есть сервер, клиент, интеграция с grunt/gulp и их watch, живое обновление css и полная перезагрузка страницы при других изменениях. Еще к нему можно писать плагины — например перехватить обновление js файлов (или какого-то конкретного — в вашем случае diff-файла) и дальше делать с ним что угодно. Если я ничего не упустил, то это позволит упростить ваше решение, убрав сервер, коммуникации по вебсокетам и, возможно, отслеживание изменений.
Вы забыли употребить слова «либералы» и «пятая колонна», поэтому зарплату не получите.

А если серьезно, то я не вижу ничего патриотичного ни в цензуре ни в проектах отгораживания от всего остального мира. Это может быть полезно некой группе лиц в ближайшей перспективе, но никак не стране в целом.
И если бы подобный опрос с такими же результатами провели в США, то минусовали бы тех кто предлагает сделать «как в Америке», так что не передергивайте.
Спасибо за отклик. Т.к. примерный план развития сюжета у меня есть, то могу сказать что часть поднятых вами вопросов будут раскрыты в дальнейшем. Потом сверимся )
Увы, не читал ни того ни другого. Надо будет ознакомиться, спасибо за наводку.
Рад слышать! Самому очень сложно оценить степень «захватываемости» и интересности, потому что глаз уже замылен. Поэтому и важно мнение со стороны.
Спасибо! А критика была бы как раз полезна — чтобы сделать последующие главы лучше.
Так в статье же описан кейс, где это нужно.
Есть фреймворк mithril, используя который мы разбиваем код на компоненты. У каждой компоненты есть метод view, который отображает модель на представление(html). Этот метод — чистая функция, не меняющая состояние, ее можно безопасно обновить.
Например если у себя в коде:
var MyButton = {
  view: function (c, title) {
    return m("button", {class: "btn btn-large"}, title);
  }
}

я захочу поменять набор классов для кнопки (btn-primary дописать, например) и посмотреть что получится, то вот такую функцию view можно было бы обновить без перезагрузки всей страницы.

Консоль хрома это хорошо, но что если у меня исходники в coffeescript и я их собираю с помощью browserify? Тут простая запись обратно в файлики не поможет.
Спасибо за наводку.
Поправьте меня, если я ошибаюсь, но разве browsersync умеет «мягко» перегружать javascript? Я ни в доках ни в примерах такого не нашел. А мне нужно было как раз при определенных изменениях в js применять эти изменения без перезагрузки страницы.
До вашего комментария я просто и не знал о таком.
Я посмотрел, выглядит интересно. Но есть ряд отличий:
  1. насколько я вижу тут другая крайность — любое изменение в js приводит к «мягкой» замене. Так, например, если я поменяю что-то в методе контроллера, вызвать m.redraw будет недостаточно (m.redraw не пересоздает компоненты), нужно перезагружать всю страницу. Мне как раз хотелось, чтобы изменения в методах view приводили к «мягкому» обновлению, а в прочих — к «жесткому». Возможно я ошибаюсь и в amok так тоже можно?
  2. работает только для Chrome. Не страшно, конечно, но я и некоторые мои коллеги используем в разработке FF.

Но в целом мне нравится их способ hot swap (используется api к хромовским devtools). Можно было бы вместо извлечения функций просто попытаться определить какая поменялась, а дальше — либо hot swap, либо full reload.
12 ...
23

Information

Rating
Does not participate
Location
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Registered
Activity

Specialization

Backend Developer, Software Architect
Lead
From 5,000 $