Изображения оптимизации производительности интерфейса

внешний интерфейс алгоритм SVG Ресурсы изображений
Изображения оптимизации производительности интерфейса

Оптимизация производительности внешнего интерфейса выходит за рамки внешнего интерфейса.

PIC-BG

распознавание изображений

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

Причина этого чудесного явления проста: в мозгу каждого живет «примитив».

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

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

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

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

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

Таким образом, сводка представления содержания изображения имеет следующие преимущества:

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

Тип изображения

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

Интерпретация типа

  • jpg
  • png
  • gif
  • svg
  • APNG
  • WebP

jpgПолное название — JPEG.Изображения в формате JPEG хранят одно растровое изображение с 24-битным цветом.Это один из наиболее часто используемых форматов изображений в нашем процессе разработки.Преимущество этого типа изображений заключается в том, что они могут быть сжаты с высоким качеством , Например, мы можем, если качество его изображения уменьшится со 100% до 60%, его объем уменьшится как минимум более чем на 50%.Например, когда изображение 100K уменьшится до 60%, его объем будет быть в пределах 40-50к; кроме того, невооруженным глазом вообще трудно различить изменения до и после сжатия после сжатия.

pngПортативный сетевой графический формат, мы часто используем этот тип изображений как прозрачные и полупрозрачные материалы.Этот тип изображения может отображать 256 цветов, и каждый цвет можно сделать прозрачным; недостаток в том, что он большой и обычно используется для него используется в условиях типа операции или страницы деловой активности и лотереи (лучше визуально).

Тип png делится на два типа: png8 и png24.

Изображения типа png8 могут отображать не более 256 цветов, поэтому формат png8 больше подходит для изображений с одним цветом, таких как сплошные цвета, логотипы, значки и т. д.; поскольку количество цветов невелико, объем изображения будет меньше;

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

gifФормат обмена изображениями, как правило, будут использоваться небольшие значки или анимация (loading.gif), gif также может отображать 256 цветов, но поддерживает только полную прозрачность и полную непрозрачность.

svgМасштабируемая векторная графика в формате XML.Карты Baidu рисуются с использованием svg.При увеличении масштаба количество видимых пикселей на единицу площади растрового изображения будет уменьшаться, поэтому оно будет искажено.Это векторная графика, которую можно рассчитывается.При приближении и удалении каждый пиксель будет пересчитываться по вектору.Он не будет искажаться, а размер svg очень маленький.

APNGТо есть Animated PNG.Буквально изображение в этом формате является "движущимся" изображением PNG.Это изначально было разработано двумя программистами из Mozilla.В то время Mozilla отказалась от формата изображения MNG и разработала его самостоятельно.Используется APNG для хранения динамических файлов с несколькими изображениями.Он имеет преимущества jpg и png одновременно.Единственным недостатком является то, что он не принят стандартом, поэтому масштабного использования нет.

apng

Как видно из рисунка выше, при одинаковом объеме качество изображения формата APNG более четкое и деликатное, чем у GIF. В то же время в случае с 24-битным форматом, поскольку PNG содержит на 256 цветов больше (фактически 16,8 млн цветов), цветопередача более нежная и реалистичная.

WebPЭто новый формат сжатия изображений, предложенный Google в 2010 г. WebP обеспечивает возможности сжатия сетевых изображений без потерь и с потерями, а также поддерживает прозрачные каналы в условиях с потерями; JPEG на 25%~34% при том же структурном сходстве, поэтому он также имеет преимущества jpg и png.

В настоящее время отечественные и иностранные интернет-компании также начали использовать его несколько лет назад.Иностранные компании включают Google, Facebook и eBay, а отечественные компании включают Taobao, Tencent и Meituan.

Что касается совместимости WebP, то он в основном поддерживает IE11+ и основные браузеры.

webp

использование изображения

Говоря о столь многих типах изображений, как нам выбрать подходящий тип изображения на основе компромисса между производительностью и пользовательским опытом при разработке проекта?

  • Если это красочное изображение, обычно выбирают jpg.
  • Для более общих анимаций единственным доступным вариантом являются GIF-файлы.
  • Если вам нужно четко отображать изображения с насыщенными цветами, png — лучший выбор.
  • Если это приложение корпоративного уровня (без учета совместимости), вы можете выбрать webp.

Как загружаются изображения

Методы загрузки изображения в основном делятся на алгоритм вейвлета и алгоритм дискретного косинусного преобразования.Браузер выбирает разные алгоритмы рендеринга в соответствии с разными изображениями, и браузер считывает свой алгоритм сжатия через заголовок файла, поэтому изменение суффикса файла не повлияет на это. нагрузка.

вейвлет-алгоритм

Алгоритм вейвлета — это способ показать, что сначала он становится размытым, а затем постепенно становится четким.

В настоящее время нет изображения алгоритма вейвлета, но многие люди в отрасли, такие как Zhihu, выполняли обработку на основе этой концепции.

Wavelet-algorithm-bg

Во-первых, Zhihu использует концепцию ленивой загрузки: когда вы перемещаетесь в видимую область браузера или приложения с изображением, загружаете изображение меньшего размера, и они запрашивают уменьшенное изображение в формате jpg. тег img прямо в коде, и браузер запросит его нормально;

Как только изображения будут загружены, они начнут рисовать тег холста, а данные изображения будут переданы пользовательской функции размытия, которая чем-то похожа на StackBlur, но не совсем, устанавливает эффект анимации непрозрачности, и сеть начинает запросить исходное изображение.

После загрузки исходного изображения исходное изображение будет отображаться в области, а холст будет скрыт.Эти процессы могут сделать весь эффект градиента более плавным и значительно улучшить взаимодействие с пользователем благодаря свойству перехода CSS3.

Алгоритм дискретного косинусного преобразования

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

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

Discrete-cosine-bg

популярная практика

CSS3

CSS3 — это «замена» изображений, обеспечивающая тот же визуальный эффект. Другими словами, при веб-разработке уменьшение вложенности избыточных тегов и количества используемых изображений означает, что у пользователей будет меньше контента для загрузки, а страница также будет загружаться быстрее. .

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

Использование CSS3 для создания графического веб-сайта не требует никаких изображений, что значительно снижает количество HTTP-запросов и повышает скорость загрузки страницы.

Конечно, это зависит от того, какие функции технологии CSS3 используются вместо этого, а также от того, как используются функции CSS3.

Например, анимационные эффекты CSS3 могут уменьшить HTTP-запросы для JavaScript и изображений, но могут потребовать от браузера выполнения большого объема работы для завершения рендеринга этого анимационного эффекта, что может привести к медленному отклику браузера и потере пользователей. Поэтому при использовании каких-то сложных спецэффектов нужно хорошо подумать.

Тем не менее, таких случаев немного и далеко друг от друга. На самом деле многие методы CSS3 могут значительно улучшить производительность страницы в любой ситуации. Этого достаточно, чтобы перейти к CSS3.

Преимущество:

  • Объем уменьшен.
  • Количество HTTP-запросов уменьшилось.
  • ctrl + масштабирование колеса плавное и неровное.
  • При написании CSS в SCSS вычисление размера на самом деле очень удобно.

Пример:500+ Free Pure CSS Icons

CSS Sprites

Спрайты CSS на самом деле предназначены для интеграции некоторых фоновых изображений на веб-странице в один файл изображения, а затем для позиционирования фона используется комбинация CSS «фоновое изображение», «фоновое повторение» и «фоновое положение». положение можно использовать Числа могут точно определить местоположение фонового изображения.

css-sprites

преимущество:

  • уменьшить размер изображения
  • Сокращение HTTP-запросов, что значительно повышает производительность страницы.
  • Он решает проблемы веб-дизайнеров при присвоении имен изображениям: нужно только назвать набор изображений, и нет необходимости называть каждый мелкий элемент, тем самым повышая эффективность создания веб-страниц.
  • Менять стиль удобно, нужно всего лишь изменить цвет или стиль картинки на одной или нескольких картинках, а стиль всей веб-страницы можно изменить. Обслуживание удобнее.

предложение:

  • Слияние больших изображений не рекомендуется
  • Предложить похожие изображения для объединения

iconfont

Iconfont относится к методу замены файлов изображений файлами шрифтов для отображения таких элементов, как значки и специальные шрифты.

Пример:iconFont

Вот пример использования iconfont

Объявление шрифта font-face:

     .css 文件

     @font-face {font-family: "iconfont";
       src: url('iconfont.eot'); /* IE9*/
       src: url('iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('iconfont.woff') format('woff'), /* chrome, firefox */
       url('iconfont.ttf') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
       url('iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */
     }

Мы видим, что разные браузеры вызывают разные файлы шрифтов.

Определите стиль Iconfont:

Мы можем изменить размер и цвет значка через размер шрифта font-size и собственный цвет color.

      .css 文件
     .iconfont {
       font-family:"iconfont" !important;
       font-size:16px;
       color:#f00;//红色
     }
 

Выберите код шрифта, соответствующий значку, и примените его к странице:

    .html 文件
    
    <i class="icon iconfont"></i>

преимущество:

  • Загружаемые файлы имеют небольшой размер.
  • Уменьшить http-запросы.
  • Вы можете напрямую изменить его размер и цвет с помощью размера шрифта и цвета css, что является хорошим решением для значков, которые необходимо масштабировать в нескольких размерах.
  • Поддержка некоторых эффектов css3 для текста, таких как тень, поворот, прозрачность.
  • Совместимость с более ранними версиями браузеров.

перспективный подход

Отзывчивая динамическая загрузка изображений (SDK)

  • нам нужно изображение по умолчанию
  • Информация о разрешении экрана возвращается на сервер
  • Используйте ресурсы изображения более высокого качества, возвращаемые сервером
Загружайте изображения разных ресурсов в соответствии с разными разрешениями (теперь поддерживаются некоторые браузеры)
    .html 文件
    
    <picture>
      <source src="/path/to/medium-image.png" media="(min-width: 600px)">
      <source src="/path/to/large-image.png" media="(min-width: 800px)">
      <img src="/path/to/mobile-image.png" alt="image description">
    </picture >

серия статей

Сначала возьми яму, а потом закончи писать.