Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Обновление в режиме реального времени

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Ну и задачка...
Serpanok
Отправлено: 06 Октября, 2011 - 00:19:45
Post Id


Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Февр. 2011  
Откуда: Красный Лиман, Украина


Помог: 0 раз(а)




Всем привет!

Помогите решить эту задачку. Сам не очень-то и догадуюсь как)))

Есть:
1. Страница на которой большая таблица(первоначально загружен массив ajax`ом и преобразован в таблицу).
2. Каждый тег td в таблице имеет параметры ctype(типо указывает на столбец) и bid(указывает на строку в бд и строку в таблице)
3. На странице каждые 5 секунд отпровляется ajax запрос
4. Страниц может быть открыто несколько у одного пользователя
5. Страницой могут пользоваться сразу несколько человек с разных ПК
7. Любой пользователь может кликнув на td изменить его значение в БД

Нужно:
1. Чтобы, если какой либо пользователь меняет значение какого то td, оно менялось на всех страницах у всех пользователей(в режиме реального времени (+-5сек.) )

Перезагружать все данные не вариант!

Мне кажется нужно какуюто табличку в БД создать с последними изменениями и оттуда брать ctype,bid и значение

Но может есть вариант по прощё?

Заранее спс! Жду ответов... С меня +
 
 Top
OrmaJever
Отправлено: 06 Октября, 2011 - 00:31:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




вобще для таких дел есть хорошая штука websockets, но не знаю какие браузеры его подерживают. Сам не работал с ним но если нужно то можно и разобратся Улыбка


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Serpanok
Отправлено: 06 Октября, 2011 - 00:32:43
Post Id


Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Февр. 2011  
Откуда: Красный Лиман, Украина


Помог: 0 раз(а)




у меня все работают с firefox)) сейчас посмотрю что это))
(Добавление)
поддерживают

Google Chrome (начиная с версии 4.0.249.0);
Apple Safari (начиная с версии 5.0.7533.16);
Mozilla Firefox (начиная с версии 4);
Opera (начиная с версии 10.70 9067);

но разбираться походу много)))
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Октября, 2011 - 08:57:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




json.
Отправляете от пользователя обновившего данные координаты и новое значение.
На то существуют long polling.
Публикуете данные в канал. Остальные принимают, получают кооринаты и значение.

Serpanok пишет:
Страниц может быть открыто несколько у одного пользователя

Учтите - браузер поддерживает не более двух одновременных асинхронных подключений.

Serpanok - подписались на эксклюзив...
 
 Top
illy
Отправлено: 06 Октября, 2011 - 09:07:58
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




это как чат. каждые 5 сек обновляются сообщения.
а тут указывается в какую ячейку это новое поместить


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Октября, 2011 - 09:12:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




illy спасибо КЭП - без вас не было понятно
 
 Top
illy
Отправлено: 06 Октября, 2011 - 09:36:23
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




DeepVarvar пишет:
illy спасибо КЭП - без вас не было понятно

Всегда стараюсь объяснить по проще Хорошо


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Октября, 2011 - 09:58:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




illy пишет:
по проще

поп роще Радость
 
 Top
Stierus Супермодератор
Отправлено: 06 Октября, 2011 - 11:11:39
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Цитата:
Но может есть вариант по прощё?
если в бд строк не очень много - можете ввести доп. поле - время последнего изменения. Ну а каждые 5 секунд отдавать только те строки, время изменения которых было больше времени отдачи прошлой порции данных. Интерсно, как вы обходите кейсы, когда 2 человека редактируют одну и ту же ячейку в таблице. Вот парень сидит, корпит, правит ее уже минут 10, второй параллельно делает то же самое и сохраняет результат. Через 5 секунд первому парню аджаксом приходит сообщение об изменении того поля - оно меняется без спроса, затирая все, над чем он корпел или что происходит?
 
My status
 Top
DeepVarvar Супермодератор
Отправлено: 06 Октября, 2011 - 11:48:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Stierus пишет:
затирая все, над чем он корпел
Точна точна!!! Ниндзя
 
 Top
illy
Отправлено: 06 Октября, 2011 - 13:05:16
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




Значит надо делать блокировку данных на время работы


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
SAD Модератор
Отправлено: 06 Октября, 2011 - 14:40:08
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




я вот одного не пойму: почему несколько человек могут редактировать одни и те же данные. должно быть какое то разграничение
(Добавление)
а еще круче будет так.
я сижу, правлю данные, отправляю запрос на редактирование. но перед этим скрипт тянет последние изменения за минут 20 например по полю lastdate, и говорит юзверю: тратата, были изменения и показать произошедшие изменения. и спрашивать потом: вы действительно хотите перезаписать то что есть?
 
 Top
Serpanok
Отправлено: 06 Октября, 2011 - 15:02:51
Post Id


Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Февр. 2011  
Откуда: Красный Лиман, Украина


Помог: 0 раз(а)




SAD пишет:
я вот одного не пойму: почему несколько человек могут редактировать одни и те же данные. должно быть какое то разграничение


это бд предприятия, и изменения тут проходят не очень часто на всё же, вряд ли будут два человека работать над одной ячейкой
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Октября, 2011 - 15:08:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Лочить, однозначно лочить. И выводить тому кто пришел позже:
"Звиняй друган - занято! Приходи минут через пять. Бумажка есть?"

(Отредактировано автором: 06 Октября, 2011 - 15:09:09)

 
 Top
Serpanok
Отправлено: 06 Октября, 2011 - 15:09:50
Post Id


Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Февр. 2011  
Откуда: Красный Лиман, Украина


Помог: 0 раз(а)




DeepVarvar пишет:
"Звиняй друган - занято!"

нее, не в коем случае)))
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB