Ответ
G_Z 15.12.2016 12:08
В отсутствие широко распространённых технологий поддерживаемых соединений клиент-сервер (есть websockets, но нам он по ряду причин не подходит) варианта асинхронного обновления контента два:
1. запрос данных с сервера при наступлении некоего события (добавление в корзину);
2. периодический запрос данных по таймеру.
Если только привязать обновление при условии нажатия на кнопку Добавить в корзину, но меня это не устраивает, хочу независимую, чтобы сама все делала, без привязки к элементам.
Очевидно, что событие добавления в корзину как нельзя лучше подходит для обновления данных.
Ведь корзина между событиями добавления / удаления остаётся неизменной, а значит не смысла обновлять данные о ней между событиями.
Единственная тонкость — работа в несколько окон, когда один клиент может изменять корзину параллельно.
Но и это не проблема, особенно, если не ставить задачи обновлять корзину в фоновой вкладке, при действиях в других вкладках.
Делать это каждую секунду — перебор.
Десять клиентов будут делать десять запросов в секунду, вы положите свой сайт такими запросами.
В дополнение, в достаточно современными браузерами поддерживается
событие «visibilitychange», подписка на которое позволяет знать, что окно стало активно или неактивно.
Переключение фокуса на вкладку можно использовать в качестве сигнала к обновлению и обновлять данные только тогда, когда вкладкой кто-то пользуется.
- JsHttpRequest отправка формы и файлов, Mizter Egoist 13.12.2016 14:56
- Браузеры «не предоставляют» такой возможности, G_Z [M] 13.12.2016 18:20
- Ответ, Mizter Egoist 14.12.2016 00:52 / 14.12.2016 00:54
- Ответ, G_Z [M] 14.12.2016 09:01
- Ответ, Mizter Egoist 14.12.2016 10:28 / 14.12.2016 10:29
- Ответ, G_Z [M] 14.12.2016 10:47 / 14.12.2016 10:48
- А вот такой запрос на получение данных правильный?, Mizter Egoist 15.12.2016 10:37
- В каком смысле «правильный»?, G_Z [M] 15.12.2016 10:52
- Ответ, Mizter Egoist 15.12.2016 11:01
- Ответ, G_Z [M] 15.12.2016 12:08
- Ответ, Mizter Egoist 15.12.2016 15:51
- Ответ, Mizter Egoist 15.12.2016 15:42
- Ответ, G_Z [M] 15.12.2016 16:01
- Ответ, Mizter Egoist 15.12.2016 17:20 / 15.12.2016 17:24
- Ответ, G_Z [M] 15.12.2016 18:07
- Получилось, Mizter Egoist 14.12.2016 16:23 / 14.12.2016 17:10