@RealSwift

Как обмениваться переменными между разными открытыми страницами одного сайта?

Например - пользователь открыл 10 страниц одного сайта.
При этом нужно каждые 5 секунд обращаться к серверу и получать свежую информацию. Какие-то значения.
Когда вкладка одна - всё просто - аякс-запросом получаем информацию. Но если вкладок много - то это будет N-запросов одновременно.
Поэтому лучше создать какое-то кеширование и считывать данные только на одной вкладке, а все прочие будут пользоваться полученной информацией и самостоятельно не слать запрос.
Вообщем - тут механизм вполне отработан, однако возникла проблема именно в обмене данных между вкладками. Всё работает на куках, однако там ограничения по размерам и этот вариант не подходит для реальной работы.
Какие ещё есть варианты?
Спасибо.
  • Вопрос задан
  • 292 просмотра
Решения вопроса 2
baskerville42
@baskerville42
Учусь работать (Junior)
Пишите скрипт который раз в 5 секунд будет в первую очередь проверять sessionStorage или localStorage на наличие каких-то данных. Если данных нету, забираем их из сервера и ложим куда надо. Минус этого решения в том, что вкладки должны быть открыты в пределах одного браузера и одного компьютера.
Ответ написан
Pjeroo
@Pjeroo
Веб-разработчик
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
Вместо них использовать localStorage. Каждое обновление заносить туда, сохраняя время получения запроса. В пятисекундный таймер вписать проверку: если есть актуальная информация в хранилище, то брать оттуда, если устарела, то запрос к серверу. Не факт, что мысль лучшая, но много проще взаимодействия между окнами.
Ответ написан
Комментировать
dizballanze
@dizballanze
Software developer at Yandex
Это называется postMessage Api
Ответ написан
Если не куки, то websockets
Ответ написан
Комментировать
@Levhav
Возьмусь за разработку проектов любой сложности.
Писал статью как раз для решения такой проблемы как у вас.
А вариант с "Если не куки, то websockets" очень не рекомендую так как у вас страницы в одном браузере открыты а не в разных.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект