Цитата:
|
А тебе нафига быстрей?
|
Я пишу двигло для рендера. Использующее виртуал дом (виртуальные дом элементы) как в Реакт от фейсбука. Я работаю с виртуальным DOM деревом а оно, когда ему нужно, подрендеривает это в реальный браузерный дом, физически отображая элементы на экране. Иными словами я хочу список в миллион элементов нарисовать на экране. Но браузер зависнет уже при 10к. ПО этому я нарисую его в виртуальный дом, а тот отследит где щас камера по отношеню к сайту и какие элементы должны быть видны а какие нет, и нарисует из того миллиона только те, что на экране могут быть видны. А когда чел прокрутит камеру вниз, то фреймворк поймет это ибыстренько подрисует элементы снизу, а те что сверху скрылись за экраном удалит). таким образом чел может рисовать огроменное количество кнопок и элементов, а движок рендера будет рисовать только то что видно на экране.
Для этого нужно будет построить не только виртуал дом, но и виртуал стайлшит, но фреймворк предполагает что мы не будем добавлять новые css стили после инициализации приложения, но если добавим ни что не мешает вызвать что-то типа ui.update() и пересчитать виртуальный стайлшит.
Вообще, теоретически, имея такие мощности, можно написать браузер в браузере, и оптимизировать не оптимальные места в браузере заточив под нужды фреймворка. Например я уже парсю стайлшиты определяю приоритеты селекторов и определяю какие изменения добавляет тот или иной класс чтобы анимировано изменить width с auto на допустим 30em, если задан transition widtn. Хотя браузер это делает рывком. и.т.п.
Я могу расширить эту концепцию и добавить нууу, например можно будет не писать префиксы всякие в css, фреймворк их сам добавит. Или можно будет написать что-то вроде новых кастомных css свойств, ну как то что делают препроцессоры, тока тут будет какое нить свойство типа width: @parent - 10% и фреймворк начнет автоматически в виртуал дом брать ширину в 10% от родительской высчитывать. Или можно добавить новые единицы измерения например, типа "одна сотая ширины экрана". Но я пока не знаю можно ли получать доступ к сырым данным css файлов? Кто знает? Я имею ввиду если стайл уже загружен и я хочу посмотреть тупо его КОД. Как это сделать? Просто стайлшиты котрые генерит браузер, при парсинге игнорируют неизвестные им свойства и синтаксические ошибки. По этому мне нужны сырые стили. Чтобы не делать xhr запрашивая и парся их повторно.