Chrome 77 уже доступен!
- Есть лучший способ отслеживать эффективность вашего сайта с помощью Largest Contentful Paint .
- Формы получают некоторые новые возможности .
- Встроенная ленивая загрузка уже здесь.
- Chrome DevSummit 2019 пройдет 11–12 ноября 2019 года.
- И многое другое .
Я Пит ЛеПейдж , давайте углубимся и посмотрим, что нового для разработчиков в Chrome 77!
Самая большая содержательная краска
Понять и измерить реальную производительность вашего сайта может быть непросто. Такие метрики, как load
или DOMContentLoaded
, не сообщают вам, что пользователь видит на экране. First Paint и First Contentful Paint фиксируют только начало опыта. «Первая значимая краска» лучше, но она сложна и иногда неверна.
API Largest Contentful Paint , доступный начиная с Chrome 77, сообщает о времени рендеринга самого большого элемента контента, видимого в области просмотра, и позволяет измерить время загрузки основного содержимого страницы.
Чтобы измерить наибольшую отрисовку контента, вам понадобится использовать Performance Observer и искать события largest-contentful-paint
.
let lcp;
const po = new PerformanceObserver((eList) => {
const e = eList.getEntries();
const last = e[e.length - 1];
lcp = last.renderTime || last.loadTime;
});
const poOpts = {
type: 'largest-contentful-paint',
buffered: true
}
po.observe(poOpts);
Поскольку страница часто загружается поэтапно, возможно, что самый большой элемент на странице изменится, поэтому вам следует сообщать в службу аналитики только о последнем событии largest-contentful-paint
.
addEventListener('visibilitychange', function fn() {
const visState = document.visibilityState;
if (lcp && visState === 'hidden') {
sendToAnalytics({'lcp': lcp});
removeEventListener('visibilitychange', fn, true);
}
}, true);
У Фила есть отличный пост о крупнейшей содержательной краске на web.dev.
Новые возможности форм
Многие разработчики создают собственные элементы управления формой либо для настройки внешнего вида существующих элементов, либо для создания новых элементов управления, которые не встроены в браузер. Обычно это предполагает использование JavaScript и скрытых элементов <input>
, но это не идеальное решение.
Две новые веб-функции, добавленные в Chrome 77, упрощают создание пользовательских элементов управления формами и устраняют многие существующие ограничения.
Событие formdata
Событие formdata
— это низкоуровневый API, который позволяет любому коду JavaScript участвовать в отправке формы. Чтобы использовать его, добавьте прослушиватель событий formdata
в форму, с которой вы хотите взаимодействовать.
const form = document.querySelector('form');
form.addEventListener('formdata', ({formData}) => {
formData.append('my-input', myInputValue);
});
Когда пользователь нажимает кнопку отправки, форма запускает событие formdata
, которое включает в себя объект FormData
, содержащий все отправляемые данные. Затем в обработчике событий formdata
вы можете обновить или изменить formdata
перед их отправкой.
Пользовательские элементы, связанные с формой
Настраиваемые элементы, связанные с формой, помогают устранить разрыв между настраиваемыми элементами и собственными элементами управления. Добавление статического свойства formAssociated
сообщает браузеру, что пользовательский элемент следует обрабатывать так же, как и все остальные элементы формы. Вам также следует добавить общие свойства входных элементов, такие как name
, value
и validity
, чтобы обеспечить согласованность с собственными элементами управления.
class MyCounter extends HTMLElement {
static formAssociated = true;
constructor() {
super();
this._internals = this.attachInternals();
this._value = 0;
}
...
}
Ознакомьтесь со всеми подробностями в разделе «Более функциональные элементы управления формами» на сайте web.dev!
Встроенная отложенная загрузка
Не понимаю, как я пропустил встроенную отложенную загрузку в своем последнем видео! Это довольно потрясающе, поэтому я включаю это сейчас. Ленивая загрузка — это метод, который позволяет вам отложить загрузку некритических ресурсов, таких как внеэкранные <img>
или <iframe>
, до тех пор, пока они не потребуются, повышая производительность вашей страницы.
Начиная с Chrome 76, браузер обрабатывает отложенную загрузку без необходимости писать собственный код отложенной загрузки или использовать отдельную библиотеку JavaScript.
Чтобы сообщить браузеру, что вы хотите отложенную загрузку изображения или iframe, используйте атрибут loading="lazy"
. Изображения и iframe, находящиеся «выше сгиба», загружаются нормально. А те, что ниже, выбираются только тогда, когда пользователь прокручивает страницу рядом с ними.
<img src="image.jpg" loading="lazy" width="400" height="250" alt="...">
Подробности см. в разделе «Отложенная загрузка на уровне браузера для Интернета» на сайте web.dev.
Саммит разработчиков Chrome 2019
Chrome Dev Summit пройдет 11 и 12 ноября.
Это прекрасная возможность узнать о новейших инструментах и обновлениях, которые появятся на веб-платформе, а также напрямую услышать мнение команды разработчиков Chrome.
Он будет транслироваться в прямом эфире на нашем канале YouTube . Если вы хотите присутствовать лично, вы можете запросить приглашение на веб-сайте Chrome Dev Summit 2019 .
И многое другое!
Это лишь некоторые изменения в Chrome 77 для разработчиков, конечно, их гораздо больше.
API выбора контактов , доступный в качестве пробной версии, представляет собой новый инструмент выбора по требованию, который позволяет пользователям выбирать запись или записи из своего списка контактов и делиться ограниченными сведениями о выбранных контактах с веб-сайтом.
А еще в API intl.NumberFormat
появились новые единицы измерения.
Дальнейшее чтение
Это касается только некоторых ключевых моментов. Перейдите по ссылкам ниже, чтобы узнать о дополнительных изменениях в Chrome 77.
- Что нового в Chrome DevTools (77)
- Устаревшие и удаленные версии Chrome 77
- Обновления ChromeStatus.com для Chrome 77
- Что нового в JavaScript в Chrome 77
- Список изменений репозитория исходного кода Chromium
Подписаться
Хотите быть в курсе наших видео, подпишитесь на наш канал YouTube для разработчиков Chrome , и вы будете получать уведомления по электронной почте всякий раз, когда мы запускаем новое видео.
Меня зовут Пит Лепейдж, и как только выйдет Chrome 78, я буду здесь, чтобы рассказать вам, что нового в Chrome!
,Chrome 77 уже доступен!
- Есть лучший способ отслеживать эффективность вашего сайта с помощью Largest Contentful Paint .
- Формы получают некоторые новые возможности .
- Встроенная ленивая загрузка уже здесь.
- Chrome DevSummit 2019 пройдет 11–12 ноября 2019 года.
- И многое другое .
Я Пит ЛеПейдж , давайте углубимся и посмотрим, что нового для разработчиков в Chrome 77!
Самая большая содержательная краска
Понять и измерить реальную производительность вашего сайта может быть непросто. Такие метрики, как load
или DOMContentLoaded
, не сообщают вам, что пользователь видит на экране. First Paint и First Contentful Paint фиксируют только начало опыта. «Первая значимая краска» лучше, но она сложна и иногда неверна.
API Largest Contentful Paint , доступный начиная с Chrome 77, сообщает о времени рендеринга самого большого элемента контента, видимого в области просмотра, и позволяет измерить время загрузки основного содержимого страницы.
Чтобы измерить наибольшую отрисовку контента, вам понадобится использовать Performance Observer и искать события largest-contentful-paint
.
let lcp;
const po = new PerformanceObserver((eList) => {
const e = eList.getEntries();
const last = e[e.length - 1];
lcp = last.renderTime || last.loadTime;
});
const poOpts = {
type: 'largest-contentful-paint',
buffered: true
}
po.observe(poOpts);
Поскольку страница часто загружается поэтапно, возможно, что самый большой элемент на странице изменится, поэтому вам следует сообщать в службу аналитики только о последнем событии largest-contentful-paint
.
addEventListener('visibilitychange', function fn() {
const visState = document.visibilityState;
if (lcp && visState === 'hidden') {
sendToAnalytics({'lcp': lcp});
removeEventListener('visibilitychange', fn, true);
}
}, true);
У Фила есть отличный пост о крупнейшей содержательной отрисовке на web.dev.
Новые возможности форм
Многие разработчики создают собственные элементы управления формой либо для настройки внешнего вида существующих элементов, либо для создания новых элементов управления, которые не встроены в браузер. Обычно это предполагает использование JavaScript и скрытых элементов <input>
, но это не идеальное решение.
Две новые веб-функции, добавленные в Chrome 77, упрощают создание пользовательских элементов управления формами и устраняют многие существующие ограничения.
Событие formdata
Событие formdata
— это низкоуровневый API, который позволяет любому коду JavaScript участвовать в отправке формы. Чтобы использовать его, добавьте прослушиватель событий formdata
в форму, с которой вы хотите взаимодействовать.
const form = document.querySelector('form');
form.addEventListener('formdata', ({formData}) => {
formData.append('my-input', myInputValue);
});
Когда пользователь нажимает кнопку отправки, форма запускает событие formdata
, которое включает в себя объект FormData
, содержащий все отправляемые данные. Затем в обработчике событий formdata
вы можете обновить или изменить formdata
перед их отправкой.
Пользовательские элементы, связанные с формой
Настраиваемые элементы, связанные с формой, помогают устранить разрыв между настраиваемыми элементами и собственными элементами управления. Добавление статического свойства formAssociated
сообщает браузеру, что пользовательский элемент следует обрабатывать так же, как и все остальные элементы формы. Вам также следует добавить общие свойства входных элементов, такие как name
, value
и validity
, чтобы обеспечить согласованность с собственными элементами управления.
class MyCounter extends HTMLElement {
static formAssociated = true;
constructor() {
super();
this._internals = this.attachInternals();
this._value = 0;
}
...
}
Ознакомьтесь со всеми подробностями в разделе «Более функциональные элементы управления формами» на сайте web.dev!
Встроенная ленивая загрузка
Не понимаю, как я пропустил встроенную отложенную загрузку в своем последнем видео! Это довольно потрясающе, поэтому я включаю это сейчас. Ленивая загрузка — это метод, который позволяет вам отложить загрузку некритических ресурсов, таких как внеэкранные <img>
или <iframe>
, до тех пор, пока они не потребуются, повышая производительность вашей страницы.
Начиная с Chrome 76, браузер обрабатывает отложенную загрузку без необходимости писать собственный код отложенной загрузки или использовать отдельную библиотеку JavaScript.
Чтобы сообщить браузеру, что вы хотите отложенную загрузку изображения или iframe, используйте атрибут loading="lazy"
. Изображения и iframe, находящиеся «выше сгиба», загружаются нормально. А те, что ниже, выбираются только тогда, когда пользователь прокручивает страницу рядом с ними.
<img src="image.jpg" loading="lazy" width="400" height="250" alt="...">
Подробности см. в разделе «Отложенная загрузка на уровне браузера для Интернета» на сайте web.dev.
Саммит разработчиков Chrome 2019
Chrome Dev Summit пройдет 11 и 12 ноября.
Это прекрасная возможность узнать о новейших инструментах и обновлениях, которые появятся на веб-платформе, а также напрямую услышать мнение команды разработчиков Chrome.
Он будет транслироваться в прямом эфире на нашем канале YouTube . Если вы хотите присутствовать лично, вы можете запросить приглашение на веб-сайте Chrome Dev Summit 2019 .
И многое другое!
Это лишь некоторые изменения в Chrome 77 для разработчиков, конечно, их гораздо больше.
API выбора контактов , доступный в качестве пробной версии, представляет собой новый инструмент выбора по требованию, который позволяет пользователям выбирать запись или записи из своего списка контактов и делиться ограниченными сведениями о выбранных контактах с веб-сайтом.
А еще в API intl.NumberFormat
появились новые единицы измерения.
Дальнейшее чтение
Это касается только некоторых ключевых моментов. Перейдите по ссылкам ниже, чтобы узнать о дополнительных изменениях в Chrome 77.
- Что нового в Chrome DevTools (77)
- Устаревшие и удаленные версии Chrome 77
- Обновления ChromeStatus.com для Chrome 77
- Что нового в JavaScript в Chrome 77
- Список изменений репозитория исходного кода Chromium
Подписаться
Хотите быть в курсе наших видео, подпишитесь на наш канал YouTube для разработчиков Chrome , и вы будете получать уведомления по электронной почте всякий раз, когда мы запускаем новое видео.
Меня зовут Пит ЛеПейдж, и как только выйдет Chrome 78, я буду здесь, чтобы рассказать вам, что нового в Chrome!