parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

G_Z 15.12.2016 12:08

В отсутствие широко распространённых технологий поддерживаемых соединений клиент-сервер (есть websockets, но нам он по ряду причин не подходит) варианта асинхронного обновления контента два:
1. запрос данных с сервера при наступлении некоего события (добавление в корзину);
2. периодический запрос данных по таймеру.
Если только привязать обновление при условии нажатия на кнопку Добавить в корзину, но меня это не устраивает, хочу независимую, чтобы сама все делала, без привязки к элементам.
Очевидно, что событие добавления в корзину как нельзя лучше подходит для обновления данных.
Ведь корзина между событиями добавления / удаления остаётся неизменной, а значит не смысла обновлять данные о ней между событиями.

Единственная тонкость — работа в несколько окон, когда один клиент может изменять корзину параллельно.
Но и это не проблема, особенно, если не ставить задачи обновлять корзину в фоновой вкладке, при действиях в других вкладках.

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

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