Пример: реализация Service Worker для кэширования

// service-worker.jsself.addEventListener(\\'install\\', function(event) {    event.waitUntil(        caches.open(\\'my-cache\\').then(function(cache) {            return cache.addAll([                \\'/\\',                \\'/index.html\\',                \\'/styles/main.css\\',                \\'/scripts/main.js\\',                \\'/images/logo.png\\'            ]);        })    );});self.addEventListener(\\'fetch\\', function(event) {    event.respondWith(        caches.match(event.request).then(function(response) {            return response || fetch(event.request);        })    );});

Программный запуск Lighthouse

Вы можете запустить Lighthouse программно, используя модуль Lighthouse Node:

const lighthouse = require(\\'lighthouse\\');const chromeLauncher = require(\\'chrome-launcher\\');(async () => {    const chrome = await chromeLauncher.launch({chromeFlags: [\\'--headless\\']});    const options = {logLevel: \\'info\\', output: \\'html\\', onlyCategories: [\\'performance\\'], port: chrome.port};    const runnerResult = await lighthouse(\\'https://example.com\\', options);    // `.report` is the HTML report as a string    const reportHtml = runnerResult.report;    console.log(reportHtml);    // `.lhr` is the Lighthouse Result as a JS object    console.log(\\'Report is done for\\', runnerResult.lhr.finalUrl);    console.log(\\'Performance score was\\', runnerResult.lhr.categories.performance.score * 100);    await chrome.kill();})();

Заключение

Достижение идеальной оценки Lighthouse требует последовательных усилий и приверженности лучшим практикам. Сосредоточив внимание на оптимизации производительности, улучшении доступности, следуя лучшим практикам, улучшая SEO и внедряя функции PWA, вы можете значительно улучшить свой рейтинг Lighthouse. Регулярное тестирование и итерации являются ключом к поддержанию высококачественного веб-приложения, обеспечивающего отличный пользовательский опыт.

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

","image":"http://www.luping.net/uploads/20240806/172292590466b1c350769a4.jpg","datePublished":"2024-08-06T14:31:43+08:00","dateModified":"2024-08-06T14:31:43+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Достижение идеального результата Lighthouse: подробное руководство

Достижение идеального результата Lighthouse: подробное руководство

Опубликовано 6 августа 2024 г.
Просматривать:618

Achieving a Perfect Lighthouse Score: A Comprehensive Guide

Lighthouse — это автоматизированный инструмент с открытым исходным кодом, разработанный Google для улучшения качества веб-страниц. Он проверяет ваш сайт по различным показателям, включая производительность, доступность, лучшие практики, SEO и критерии прогрессивных веб-приложений (PWA). Хотя добиться идеального результата Lighthouse сложно, это возможно благодаря систематической оптимизации. Это руководство проведет вас через шаги, необходимые для улучшения вашего сайта и достижения 100% оценки Lighthouse.

1. Оптимизация производительности

Производительность — важнейший компонент оценки Lighthouse. Вот как вы можете его улучшить:

Ленивая загрузка

Реализуйте отложенную загрузку изображений и видео, чтобы они загружались только при появлении в области просмотра.

document.addEventListener("DOMContentLoaded", function() {
    let lazyImages = [].slice.call(document.querySelectorAll("img.lazy"));

    if ("IntersectionObserver" in window) {
        let lazyImageObserver = new IntersectionObserver(function(entries, observer) {
            entries.forEach(function(entry) {
                if (entry.isIntersecting) {
                    let lazyImage = entry.target;
                    lazyImage.src = lazyImage.dataset.src;
                    lazyImage.classList.remove("lazy");
                    lazyImageObserver.unobserve(lazyImage);
                }
            });
        });

        lazyImages.forEach(function(lazyImage) {
            lazyImageObserver.observe(lazyImage);
        });
    } else {
        // Fallback for browsers without IntersectionObserver
        let lazyLoad = function() {
            let scrollTop = window.pageYOffset;
            lazyImages.forEach(function(img) {
                if (img.offsetTop 



Сжатие

Используйте сжатие Brotli или gzip для своих ресурсов, чтобы уменьшить их размер и ускорить загрузку.

Минимизация

Минимизируйте файлы JavaScript, CSS и HTML, чтобы удалить ненужные символы и уменьшить размер файлов.

Кэширование

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

Критический CSS

Встройте критический CSS, чтобы обеспечить быструю загрузку основного содержимого вашей страницы и отложить некритичный CSS.

Сократите время выполнения JavaScript

Оптимизируйте свой код JavaScript, чтобы минимизировать время выполнения и обеспечить постоянную отзывчивость вашего сайта.

2. Улучшения специальных возможностей

Доступность гарантирует, что вашим сайтом сможет пользоваться как можно больше людей, включая людей с ограниченными возможностями.

Цветовой контраст

Убедитесь, что цвета текста и фона достаточно контрастны, чтобы их было легко читать.

Роли АРИА

Используйте роли и атрибуты ARIA, чтобы улучшить доступность вашего веб-приложения.

Порядок вкладок

Обеспечьте логичный порядок табуляции для интерактивных элементов, чтобы облегчить навигацию с помощью клавиатуры.

Этикетки

Добавьте к элементам формы описательные метки, чтобы сделать их доступными для программ чтения с экрана.

3. Лучшие практики

Следование лучшим практикам поможет обеспечить безопасность и хорошую работу вашего сайта.

HTTPS

Подключайте свой сайт через HTTPS, чтобы обеспечить безопасную передачу данных.

Избегайте смешанного контента

Убедитесь, что все ресурсы загружаются через HTTPS, чтобы избежать проблем со смешанным контентом.

Аудит уязвимостей безопасности

Регулярно проверяйте свой код на наличие проблем безопасности и устраняйте любые уязвимости.

4. SEO

SEO помогает улучшить видимость вашего сайта в результатах поисковых систем.

Мета-теги

Включите соответствующие метатеги для заголовка, описания и области просмотра.

Структурированные данные

Используйте структурированные данные (например, JSON-LD), чтобы поисковые системы лучше понимали ваш контент.

Удобство для мобильных устройств

Убедитесь, что ваш сайт удобен для мобильных устройств и адаптирован для пользователей на различных устройствах.

5. Прогрессивное веб-приложение (PWA)

PWA обеспечивают удобство работы в Интернете, аналогичное приложениям.

Файл манифеста

Создайте файл манифеста веб-приложения со всей необходимой информацией, чтобы сделать ваш сайт PWA.

Сервисный работник

Реализуйте сервис-воркера для кэширования ресурсов и включения автономной функциональности.

HTTPS

Убедитесь, что ваш сайт обслуживается по протоколу HTTPS, поскольку это требование для PWA.

Тестирование и итерация

Регулярно проводите аудит маяков

Используйте Chrome DevTools или интерфейс командной строки Lighthouse для проведения аудита и устранения любых проблем.

Мониторинг производительности

Используйте такие инструменты, как WebPageTest, Google PageSpeed ​​Insights и GTmetrix, чтобы отслеживать производительность вашего сайта.

Постоянное улучшение

Регулярно обновляйте и оптимизируйте свою кодовую базу, чтобы поддерживать высокую производительность и удобство для пользователей.

Пример: оптимизация загрузки ресурсов с помощью предварительной загрузки

    
    

Пример: реализация Service Worker для кэширования

// service-worker.js
self.addEventListener('install', function(event) {
    event.waitUntil(
        caches.open('my-cache').then(function(cache) {
            return cache.addAll([
                '/',
                '/index.html',
                '/styles/main.css',
                '/scripts/main.js',
                '/images/logo.png'
            ]);
        })
    );
});

self.addEventListener('fetch', function(event) {
    event.respondWith(
        caches.match(event.request).then(function(response) {
            return response || fetch(event.request);
        })
    );
});

Программный запуск Lighthouse

Вы можете запустить Lighthouse программно, используя модуль Lighthouse Node:

const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');

(async () => {
    const chrome = await chromeLauncher.launch({chromeFlags: ['--headless']});
    const options = {logLevel: 'info', output: 'html', onlyCategories: ['performance'], port: chrome.port};
    const runnerResult = await lighthouse('https://example.com', options);

    // `.report` is the HTML report as a string
    const reportHtml = runnerResult.report;
    console.log(reportHtml);

    // `.lhr` is the Lighthouse Result as a JS object
    console.log('Report is done for', runnerResult.lhr.finalUrl);
    console.log('Performance score was', runnerResult.lhr.categories.performance.score * 100);

    await chrome.kill();
})();

Заключение

Достижение идеальной оценки Lighthouse требует последовательных усилий и приверженности лучшим практикам. Сосредоточив внимание на оптимизации производительности, улучшении доступности, следуя лучшим практикам, улучшая SEO и внедряя функции PWA, вы можете значительно улучшить свой рейтинг Lighthouse. Регулярное тестирование и итерации являются ключом к поддержанию высококачественного веб-приложения, обеспечивающего отличный пользовательский опыт.

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

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/koolkamalkishor/achieving-a-perfect-lighthouse-score-a-comprehensive-guide-1ai8?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить это
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3