![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
americanets |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 1 Всего: 12 |
как определить редактируется страница в данный момент или нет , допустим один админ редактирует ее нужно высветить сообщение что она занята, после того как он вышел со страницы надпись убералась, можно конечно при входе писать в базу что она занята при сохранении уберать, но вдруг интернет оборвался или просто он не сохранял а посмотрел то страница останеца под редактированием
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
Serkys |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: нет Всего: 22 |
Можно аяксом каждые 5 секунд отсылать уведомление, что страница занята. Если последнее уведомление было раньше, чем 5 секунд назад - значит страница свободна.
|
|||
|
||||
americanets |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 1 Всего: 12 |
да, я тоже подумал о времени последнего запроса, только наверное не 5 секунд буду а 30 чтоб не нагружать сервер, хотя нагрузка не должна быть большой
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
Serkys |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: нет Всего: 22 |
Нагрузка большой не будет, всего лишь апдейт одного поля в БД. А если делать 30 секунд, то информация об редактировании страницы будет устаревшей.
|
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Что за бред?
Делает файл, куда пишется название (имя файла) страницы, которая редактируется, и делается проверка в скрипте. Все... |
|||
|
||||
Serkys |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: нет Всего: 22 |
||||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
||||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 11 Всего: 146 |
Думаю, что с блокировкой тут не получится, т.к. после завершения процесса php блокировка спадет. Т.к. не требуется возвращать никакие данный, ajax тоже не обязателен. Думаю оптимальным способом будет трюк с псевдокартинкой, обновляемой каждые n секунд. Скрипт к которому будет обращаться браузер за картинкой также будет предельно простым, вся его задача будет заключается в обновлении даты модификации
Все. Далее просто проверяем на существование файла и на дату модификации << текущей даты. |
|||
|
||||
Serkys |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: нет Всего: 22 |
sTa1kEr, хорошая идея. Попутно не подскажешь, как обновлять картинку, не обновляя саму страницу?
Mal Hack, а если редактирование длится дольше 10 минут, то могут возникнуть проблемы. Если меньше - пользователь будет ждать зря. Неужели так трудно добавить ajax? |
|||
|
||||
sTa1kEr |
|
||||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 11 Всего: 146 |
Да ни чего сложного, достаточно менять свойство src
|
||||
|
|||||
americanets |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 1 Всего: 12 |
спасибо, сначало с базой пробовал, но слишком много запросов, делаю с файлами, проверяю время создания , если больше 62 сек то открыта, если меньше то закрыта, javascript'om вызываю скрипт раз в 60 сек чтоб дату файла менял, проблема только в том, что юзер без перезагрузки страницы не увидит в списке страниц сообщение, но пока и того что есть достаточно
еще раз спасибо -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
Serkys |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: нет Всего: 22 |
americanets, sTa1kEr предложил более удобное решение.
sTa1kEr, тогда уж интервал использовать будет логичнее:
|
|||
|
||||
Debate |
|
|||
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 5.6.2005 Репутация: нет Всего: нет |
вот так попробуй.. у меня работает.. даже если просто закрыть интернет или если он обрубится |
|||
|
||||
VeNICK |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 11.10.2006 Репутация: нет Всего: нет |
а если попробовать писать в сессии то, что ты редактируешь и делать транзакции в случае исключений
|
|||
|
||||
Diesel Draft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: нет Всего: 5 |
VeNICK, Сессия видна только одному пользователю. То есть если кто то реагирует то только он будет про это знать.
Можно просто замутить что то на примере сорссейва. Тебе просто надо ставить отметку в таблице, з одной стороны номер документа з другой пользователь что реагирует. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |