@kirill-93

SSR данные, которые зависят от localStorage?

Заголовки на сайте показываются на двух языках. Язык хранится в localStorage, соответственно на сервере просто генерируется английский (по умолчанию). В результате, у пользователей, у которых установлен русский язык, с сервера приходит английский текст, а затем в браузере переключается. Это все происходит за долю секунды и очень некрасиво дергается.
Как правильно обрабатывать такие ситуации? Первое, что приходит в голову - хранить не в localStorage, а в куках, но может есть другие варианты?
Я вот видел, как на сайтах (на youtube в том числе) при загрузке страницы вместо текстов и вообще вместо всех элементов, показываются серые прямоугольники, которые затем заменяются данными. Что это такое? Как это работает?
  • Вопрос задан
  • 736 просмотров
Пригласить эксперта
Ответы на вопрос 3
rockon404
@rockon404
Frontend Developer
Используйте cookie. Напишите две обертки для работы с cookie на стороне клиента и сервера с идентичным интерфейсом и создавайте инстансы в соответствующих точках входа. Так можно будет использовать один и тот же код использующий cookie на сервере и клиенте.
Что-то вроде:
interface AppStorage {
  get: (key: string) => any;
  set: (key: string, value: any, options: any) => void;
  delete: (key: string) => void;
}
Ответ написан
Комментировать
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Это серые прямоугольники (span'ы/div'ы с серым background-color), которые показываются, пока сайт тянет данные аяксом. Надо понимать, что в этом случае преимущества SSR практически сводятся к нулю, показать заглушки можно и без сервера.
Ответ написан
Комментировать
@nvdfxx
Senior Pomidor developer
Чем вариант с куками не нравится? Это, наверное, единственный вариант, если вы SSR для SEO юзаете, вам же нужно индексировать тексты и для других языков?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы