![]() |
Модераторы: 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, Сессия видна только одному пользователю. То есть если кто то реагирует то только он будет про это знать.
Можно просто замутить что то на примере сорссейва. Тебе просто надо ставить отметку в таблице, з одной стороны номер документа з другой пользователь что реагирует. |
|||
|
||||
awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: нет Всего: 31 |
Ребята .... Что за изобретания велосипеда, апдейт "псевдо" картинок??
Mal Hack прав на все 100%, просто возьмите за базу его идею. А дальше? ну к примеру можно хранить сериализованный массив редактируемых страниц, из которого при парсинге будут выбрасываться записи где время открытия для редактирования > N минут. |
|||
|
||||
Serkys |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: нет Всего: 22 |
awers, недостатки этого подхода перечислены не раз. Этот способ применим, но где здесь творческий подход и искусство программирования?
|
|||
|
||||
theworldcreator |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: нет Всего: 13 |
А чем вам не нравится способ, когда делается невидимый фрейм, с адресом php скрипта. Основная страница будет с помощью JavaScript обновлять фрейм каждые n секунд, и тем же JavaScript данные из подгруженной страницы будут отображаться в видимом разделе(это уже нужно для страницы на которой будет выводится статус редактируемого файла. Чтоб не всю страницу обновлять а невидимый фрейм)
|
|||
|
||||
Serkys |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: нет Всего: 22 |
theworldcreator, мне кажется проще обновлять не фрейм, а рисунок, как было предложено ранее.
|
|||
|
||||
theworldcreator |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: нет Всего: 13 |
А если хочется обновлять информацию на странице, не обновляя саму страницу?
|
|||
|
||||
americanets |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 1 Всего: 12 |
ну на самом деле все работает без обновления рисункв каждые n секунд, правда если админ не стоит на одной странице постоянно, а так обновлять каждый раз от 20 до 100 рисунков тоже накладно
Это сообщение отредактировал(а) americanets - 17.9.2007, 15:31 -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |