Skip to content

Instantly share code, notes, and snippets.

@arestov
Last active April 27, 2017 06:34
Show Gist options
  • Save arestov/6663352 to your computer and use it in GitHub Desktop.
Save arestov/6663352 to your computer and use it in GitHub Desktop.
Provodajs

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

Фреймворк обеспечивающий атомарные реакции в DOM дереве на изменения состояний (вместо переделывания больших участков DOM дерева), где не нужна сложность используя простые и эффективные шаблоны на основе html разметки аля angularjs и сложные views, где простыми не обойтись.

Фреймворк обеспечивающий огромную скорость отображения данных за счёт

  • минимизации чтений DOM во время записи изменений состояний (чтение во время изменения множества частей дерева крайне негативно сказывается на производительности)
  • аккуратного, не затягивающегося накопления изменений необходимых произвести в DOM
  • прикрепления частей изменяющихся коллекций одним разом (createDocumentFragment) в конкретное место (after, before) вместо открепления всей коллекции от DOM и повторного прикрепления
  • прогрессивного асинхронного рендеринга: картина прорисовывается сразу с небольшим количеством деталей, затем деталей появзяется всё больше и больше
  • повсеместное кеширование обращений к DOM (сокращение до минимума необходимости парсинга дерева получения важных нодов)
  • клонирование нодов
  • производительности самого фрейморка: кеширование, повторное использование объектов - и то и другое и для непосредственно скорости выполнения кода и для более редкой необходимости сборки мусора, аккуратное использование setTimeout (в больших количествах оказывается дорогой операцией)

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

P.S. provodajs - результат эволюции кода seesu (приложения для поиска и прослушивания музыки), которая разрабатывается с октября 2009 года, времени когда javascript MVC фреймворки ещё не были модными

google trends backbone js angularjs knockout js emberjs

(extjs не считается)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment