Доброго
Задача: на странице таблица, куда выводится 4-5 колонок из БД. Добавление, редактирование, удаление - через ajax. Выдал формочку, отправил запрос, получил ответ, дописал в таблицу. Это понятно.
Нужно реализовать отображение на странице актуальных данных из БД даже если эти изменения делал другой пользователь с другой такой же страницы. Т.е. в базе обновились данные - это отразилось на странице.
Как это делается? Алгоритм не ясен. (видимо, предполагается, что пользователей несколько - в этом и затык).
Пока вижу решение в промеждуточнойт аблице, куда пишется идентефикатор сессии-пользователя и команды, которые нужно отправить клиенту, плюс флаг получения. И по таймауту опрашивать эту таблицу. Но как-то коряво выглядит. Может есть решения, но я просто не знаю.
Спасибо за помощь
- 20.07.2012 00:23
- 23.07.2012 18:15
- Регистрация: 19.12.2009
- Сообщений: 145
- Репутация: 32
Алгоритм:
При получении данных пользователем отдавать еще и время последней модификации этих данных.
Если один из пользователей изменил какие-либо данные, то время последней модификации тоже изменяется.
По таймеру (раз в секунду/пять/десять...) аяксом спрашивать время последней модификации, при этом посылать время модификации данных у текущего пользователя. Если не совпадают, то обновлять данные.Спасибо сказали:
ZCFDDD(24.07.2012), - 26.07.2012 15:21
ZCFDDD, код типа
Код HTML:Это пример того, как можно обновлять раз в 10 секунд. Внутри функции нужно прописать рабочий код, который обновляет у вас таблицу.<script type="text/javascript"> function update_stat() { // тут пишите функцию которая обновляет таблицу } setInterval("update_stat()", 10000); </script>
Если уж про алгоритм, то можно присвоить таблице атрибут id="", который будет содержать timestamp времени последнего обновления таблицы.
При проверке через JS достаем timestamp из таблицы на страницы и отправляем запрос в БД.
Если этот timestamp меньше того, что записан у последней записи в базе данных, то можно вновь обновлять таблицу на странице.
Это решение позволит избежать создания промежуточной таблицы в базе данных для хранения времени последнего обновления.
Возможно не допонял вопроса. Если что уточните, постараюсь конкретизировать ответ.Последний раз редактировалось FaNiska; 26.07.2012 в 15:28.
Тэги топика:
- ajax,
- php,
- update_stat,
- актуальный,
- бд,
- время,
- данный,
- куда,
- модификация,
- нужный,
- обновлять,
- отправить,
- пользователь,
- последний,
- решение,
- сервер,
- страница,
- таблица,
- функция
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
Актуальные на 2011 год методы получения обратных ссылок | Обучающие статьи | 28 | 06.08.2012 17:40 |
Как поднять тиц? Актуальные методы | Дайджест блогосферы | 9 | 16.06.2011 21:14 |
24-Hoster Solutions - Виртуальный хостинг, VPS сервера, Выделенные сервера | Хостинг, сервера, домены | 0 | 10.08.2010 23:24 |
Сервис ActualKeywords.com - актуальные базы кеев по всем нишам | Реклама партнерских программ | 2 | 30.03.2010 13:15 |