Search
Minimize
My Profile
Profile Avatar
Rico
*******
*******, ******* *******
*******
******* https://homeboxx.ru/post/13 *******
Как только мы установили соединение с веб сервером браузер отправляет инициирующий HTTP GET запрос от имени пользователя Разработчик должен стараться оптимизировать своё приложение как минимум по этим двум показателям Они являются независимыми структурами данных Для установки безопасных соединений с использованием HTTPS требуется ещё одно рукопожатие Объектная модель доступности accessibility object model AOM это семантическая версия DOM Время рендера это ключевое понятие Чтобы понять как улучшить производительность и ощущаемую пользователем производительность User Perceived Performance UPP вам необходимо понимать как работают браузеры Лучше пузо от пива чем горб от работы Это часть спецификации TCP slow start en US алгоритма который балансирует скорость соединения Размер пакетов будет увеличиваться до тех пор пока не достигнет какого то порогового значения или не упрётся в проблему переполнения В идеальных условиях это обычно не занимает много времени но задержки сети и ширина канала препятствия которые приводят к задержкам загрузки приложения Сетевые задержки это главная проблема которую нужно преодолеть для достижения быстрой загрузки Третий шаг в критическом пути рендеринга это комбинирование DOM и CSSOM в дерево рендеринга Your blueprint for a better internet Чем больше существует узлов в дереве тем сложнее это дерево построить Эта страница была переведена с английского языка силами сообщества Понедельник является худшим днём для большинства людей ведь начинается рабочая неделя Завтра на работу как на праздник бодро весело гремя кандалами Но с точки зрения управления памяти они неэффективны Эта обработка называется Парсинг Parsing Пока модель AOM не построена содержимое страницы недоступно для голосовых помощников и считывателей экрана en US Момент когда позиция и размеры узлов вычислены называется layout В большинстве своём браузеры рассматриваются как однопоточные приложения На веб странице практически все элементы прямоугольны box DNS запрос обычно требуется совершить лишь единожды при загрузке страницы Как и в HTML браузер должен преобразовать полученные правила CSS во что то с чем он может работать Две главных проблемы в производительности это проблема скорости сети и проблема однопоточности браузеров В то же время дерево доступности не может быть изменено вспомогательными технологиями В примере выше загрузка содержимого DOM заняла около 6 5 секунд Построение CSSOM происходит очень быстро и не отображается отдельным цветом в средствах разработчика CSSOM объектная модель CSS похожа на DOM Как только браузер получает первый кусочек данных он сразу начинает обрабатывать получаемую информацию Пользователи хотят использовать приложения в которых загрузка контента происходит быстро а взаимодействие плавно Это может быть проблемой с точки зрения производительности особенно для мобильных сетей После обмена восемью сообщениями браузер наконец достигает всех условий чтобы сделать запрос Можете скачать бесплатно прикольные картинки про работу и настроение улучшится Объектная модель документа DOM описывает содержимое документа Скажем если ваши шрифты картинки скрипты реклама или счётчики аналитики находятся на разных доменах DNS запрос будет осуществлён для каждого из них Если вы когда то слышали о правиле 69КБ то должны понимать что оптимизация производительности загрузки должна учитывать ограничения этого начального запроса Узлы созданные таким образом будут отрисованы на их собственном слое вместе с их потомками если только потомки сами по себе не будут вынесены в отдельные слои Для того чтобы избежать таких проблем браузер должен реагировать на получение пакетов и подтверждать что он получает их Последний шаг критического пути рендеринга это отрисовка каждого отдельного узла на экране Для переноса вычислений отрисовки на GPU вы можете использовать некоторые специальные HTML теги например video и canvas а также CSS свойства opacity transform и will change Чтобы достичь плавности взаимодействия разработчик должен обеспечивать производительность во всём начиная от плавного скроллинга до быстрой реакции на нажатие экрана Это освобождает основной поток Однако DNS запросы должны быть выполнены для каждого уникального имени хоста который запрашивается страницей Чтобы ускорить загрузку разработчик должен посылать запрошенные данные как можно быстрее или на худой конец сделать вид что они отправляются очень быстро Все это время основной поток процесса был полностью загружен и не был способен обработать пользовательский ввод На этом шаге определяется какой шифр будет использоваться для шифрования соединения удостоверяется надёжность сервера и устанавливается безопасное соединение Браузер должен выполнять это быстро В алгоритме TCP slow start en US каждый следующий отправленный сервером пакет увеличивается в размере в два раза Во время фазы отрисовки или растеризации браузер конвертирует каждый контейнер box в настоящие пиксели на экране напомним что данные контейнеров формируются на этапе layout Дерево рендера содержит все видимые узлы с их содержимым и вычисленными стилями Браузер считывает каждый набор правил в CSS создаёт дерево узлов с родителями детьми и соседями основываясь на CSS селекторах Например размер второго пакета будет около 78КБ Отрисовка подразумевает рисование каждой визуальной частицы элемента на экране текст цвета границы тени и рисование заменяемых элементов картинки кнопки Когда пользователь находится в мобильной сети каждый DNS запрос должен пройти от мобильного устройства до сотовой вышки а уже оттуда дойти до авторитетного DNS сервера Такой ответ подтверждение называется Aknowledgements ACK Если документ сформирован правильно его обработка прямолинейна и быстра В то же время сканер предзагрузки находит скрипты и изображение антенна tv flat начинает их загрузку при установке соединения передаются 8 сообщения Сетевые задержки это время которое требуется для передачи данных от источника к браузеру Когда разделы документа отрисованы на разных слоях а один слой находится над другим или перекрывает его становится необходима композиция В некоторых случаях содержимое может быть вынесено на отдельные слои и совмещено composition такой подход увеличивает производительность позволяя отрисовывать содержимое экрана на графическом процессоре вместо ЦПУ Оно настолько быстрое что чаще всего включается в показатель Повторное вычисление стилей Recalculate Styles в средствах разработчика CSSOM и DOM деревья созданные на предыдущем этапе комбинируются в дерево рендера которое затем используется для расчёта положения каждого видимого элемента В момент когда сервер получает запрос он начинает ответ с посылки заголовков ответа и содержимым HTML файла Во время парсинга получаемые данные преобразуются в DOM и CSSOM en US которые напрямую участвуют в отрисовке Этот перерасчёт reflow запускает перерисовку repaint и перекомпозицию re composite Он происходит каждый раз когда пользователь запрашивает страницу вводя URL в адресную строку браузера нажимает на ссылку отправляет заполненные поля формы и выполняет некоторые другие действия Браузер начинает построение модели с наиболее общих правил для каждого узла постепенно применяя более специфичные правила Разработчик должен обеспечить такую работу приложения чтобы все его задачи могли быть выполнены достаточно быстро В этом случае сервер зарегистрирует что какие то пакеты не дошли и пошлёт их заново что приведёт к лишней работе сервера и дополнительной нагрузке сети Дерево несёт в себе информацию о том какие узлы должны быть отрисованы даже если они невидимы и какие стили должны быть применены но в дереве нет никакой информации о размерах и позиции элементов В примере купить кушон venzen основной поток обрабатывает HTML и CSS CSSOM дерево включает в себя стили пользовательского агента это стили которые браузер вставляет по умолчанию Как только дерево рендера построено начинается layout Элемент html это первый тег и корневой элемент дерева документа Этот показатель показывает общее время обработки стилей обработку CSS построение CSSOM и рекурсивное вычисление стилей Производительность здесь это то что делает загрузку страниц как можно более быстрой В примере выше ответ значительно меньше чем 69КБ скрипты и стили перечисленные в ответе не будут запрошены пока браузер не обработает ответ Слои улучшают производительность Браузер также строит дерево доступности которое используется устройствами помощниками для понимания и интерпретирования контента Последующие вычисления позиций и размеров называются reflow Если из за ограничений соединения браузер не получит данных то он не пошлёт подтверждений ACK Таким образом весь этот процесс это повторение формирования DOM только для CSS Дерево отражает связи и иерархию между разными тегами Отрисовка может разбить элементы в дереве рендера на слои Но если мы не определили размер изображения заранее то браузер после получения ответа от сервера будет вынужден отмотать процесс рендеринга обратно к шагу компоновки layout и начать процесс отрисовки ещё раз Такое правило позволяет постепенно по мере необходимости увеличивать размеры передаваемых данных пока не будет определена максимальная ширина канала Отдых закончился впереди рабочая неделя Пользователи ожидают что приложение будет грузиться быстро а взаимодействие с ним будет плавным После этого элементы будут отрисованы на экране В нашем примере предполагаемый начальный layout происходит перед тем как изображение получено Быстрые приложения дают лучшие ощущения А мне зарплату прописью писать Использует размер видимой области как базис процесс начинает вычисление с элемента body затем переходит к его потомкам вычисляет размеры каждого элемента и резервирует место для тех элементов размеры которых он ещё не знает например изображения Если сервер отправит слишком много пакетов за раз они могут быть отброшены Первый пакет обычно содержит 69КБ данных Этапы рендеринга включают в себя стилизацию компоновку layout отрисовку paint и в некоторых случаях композицию composition
  
Copyright 2011 by Apaci Pty Ltd