Рубрики
Без рубрики

UX Другие индикаторы загрузки

Я люблю индикаторы погрузки. Особенно с тех пор, как вышли Лотские анимации, я играю вокруг … Помечено JavaScript, UX, Showdev.

Я люблю индикаторы погрузки. Особенно с тех пор Лоттье анимации Вышли, я играю с различными видами анимации как индикаторы погрузки. Однако эти индикаторы загрузки часто ставят огромную проблему UX при использовании для отображения «ожидания» для запросов Fetch.

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

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

Индикатор загрузки приятно для содержания, который занимает 1000 мс + время отклика. Однако он не подходит для содержания, который занимает очень маленькое время вроде 200 мс. Но содержание, однако, загружено через сеть, что означает для пользователей с быстрым 5 г 🛰 соединение, время отклика будет использоваться 200 мс 🚀, а для пользователей с медленными 3G/2G-соединениями время отклика может быть выше для одного и того же контента ☹️

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

На копании глубоко в эту тему Ract Team проделал много исследований в Suspense Модуль, который делает оптимистичный рендеринг и не отображает какие-либо индикаторы загрузки, если запрос разрешен быстро!

Я написал резюме моих учащихся в отдельном Tweet Thread который вы также можете прочитать, используя Reader

Для идеального UX для сценария, такого как один в приведенной выше образец кодовой коробки,

  • Если запрос разрешится в 200 мс
    • Индикатор загрузки не требуется
  • Если запрос разрешится в 500 мс
    • Никакой индикатор погрузки не требуется до 200 мс.
    • Индикатор загрузки появляется при 300 мс (что-то не навязчиво)
    • Индикатор загрузки виден до 600 мс (даже если данные извлекаются на 500 мс), чтобы гарантировать, что UI не отображается, как если бы он заикал/мигает для пользователя
  • Если запрос разрешится в 1200 мс.
    • Следуя над временной шкалой, индикатор загрузки отображается до 600 мс.
    • После 1000 мс появляется еще один индикатор загрузки (похоже на пользователь в медленной сети)
    • Этот индикатор загрузки останется видимым до 1300 мс (чтобы пользователи могли видеть мигающий экран)

Применение этой логики, попробуйте следующий пример –

В этот раз, в

  • Загрузка загрузки 200 мс.
  • 300 мс + У нас есть индикатор погрузки, который нежная непрозрачность, которая является обязательно видимой для 300 мс, прежде чем отображать данные
  • 1000 мс + У нас есть другой анимированный индикатор загрузки, который также виден для 300 мс, прежде чем отображать данные

На втором примере я построил библиотеку JavaScript – «Загрузка-состояние» что поддерживает состояние загрузки внутри, используя Setimeate И предоставляет простой в использовании API для отображения индикаторов загрузки.

import loader from "loading-state";

loader(
  new Promise((resolve, reject) => resolve("cool!")),
  {
    shortLoading: () => {}, // callback to display first loading indicator
    longLoading: () => {}, // callback to display the second indicator
    done: (result) => {}, // success callback with the result of the promise
    error: (e) => {} // error callback with the thrown error
  },
  {
    busyDelayMs: 300, // how long to wait till displaying first indicator
    longBusyDelayMs: 1000, // how long to wait till displaying second indicator
    shortIndicatorVisibilityMs: 300, // how long to display first indicator
    longIndicatorVisibilityMs: 300, // how long to display second indicator
  }
)

С этим мы можем эффективно поддерживать состояние загрузки нашего сетевого запроса и убедиться, что UX не затронут для пользователя, основанного на их скоростях сети!

Оригинал: “https://dev.to/dani_akash_/ux-friendly-loading-indicators-3obd”