![]() |
|
|
![]()
|
|
| jhonyxakep |
|
|||
![]() Divide Et Impera ![]() ![]() Профиль Группа: Участник Сообщений: 983 Регистрация: 7.4.2009 Где: Что, Когда? Репутация: нет Всего: 8 |
Собственно САБЖ
Как это делают редакторы типа гугла? Почему-то все, что приходило в голову, это пошаговое редактирование: сначала пишет один, потом второй, и тексты синхронизируются. Как еще можно? |
|||
|
||||
| PascalC |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 19.10.2008 Репутация: нет Всего: нет |
Думаю также как и при работе с БД - используются блокировки редактируемых частей, на чем большее количество частей разбит документ, тем менее заметны блокировки и кажется что работа полностью совместная. Ну и синхронизация изменений через определенный промежуток времени.
|
|||
|
||||
| jhonyxakep |
|
|||
![]() Divide Et Impera ![]() ![]() Профиль Группа: Участник Сообщений: 983 Регистрация: 7.4.2009 Где: Что, Когда? Репутация: нет Всего: 8 |
Может существуют еще какие-нибудь варианты? |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 4 Всего: 101 |
блокировки должны быть непротиворечивы. обычно для таких общих задач как БД и редактирование документов автоматически определить границы требуемой блокировки нельзя, они определяются предметной областью (в данном случае - назначением, характером и структурой документа).
значит нужно предусмотреть разные уровни блокировки. наиболее общая - блокировка всего документа - обычно обеспечивается средствами файловой системы. логично минимальным объектом группировки принять абзац. еще мельче - предложение (более общо - выражение, как в ЯП), но тогда нужно договариваться о метке конца предложения (точка) и требовать от пользователей её ставить.
при постоянном соединении можно обеспечить и мгновенную синхронизацию (или мгновенное уведомление об изменениях) |
|||
|
||||
| jhonyxakep |
|
|||
![]() Divide Et Impera ![]() ![]() Профиль Группа: Участник Сообщений: 983 Регистрация: 7.4.2009 Где: Что, Когда? Репутация: нет Всего: 8 |
В общем-то я именно так и реализовал, но увы вариант показал себя с не самой лучшей стороны... Ну или просто с руками проблемы =) Мне нужно сделать он лайновое редактирование кода с си подобным синтаксисом... В принципе блоками может являтся пространство между {} ну или просто сами функции. Главный вопрос в том - как уберечься от возможных ошибок и обрывов соединения, ведь тогда у одного человека останется один экземпляр, а у другого - другой. Добавлено @ 04:20 TCP/IP? сохранять изменения у одного человека только в том случае, если пришел от от другого? Это сообщение отредактировал(а) jhonyxakep - 30.7.2011, 04:20 |
|||
|
||||
| shara |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 29.6.2004 Где: печенье? Репутация: нет Всего: 2 |
Так же как это делают БазыДанных -> транзакции. т.е. или все (текст отрдактирован) или ничего (отмена внесенных изменений/еще раз попытаться провести синхронизацизирующую транзакцию) А сама транзакция подразумевает посылку запроса на сохранение внесеннх изменений и получение ответа на него. Еще всякие там системы контроля версий на подобие cvs, собсно этим и занимаются, но не в онлайн режиме.. там есть понятие comit Если Си подобный синтакисис, то ИМХО лучше блоком считать все от начала строки до точки с запятой на ее конце ну или вообще смелая идея Намелевать полноценный клиент сервер, как в шуттерах к примеру. Не ну а че? Все желающие поиграть отредактировать текст конктятся к серверу... Передвижение по тексту при помощи стрелок aka AWSD -> так сказать юзер_скин (он же курсор) который виден всем участникам действия. Набор текста это уже своего рода команды серверу на изменение арены боевых дейсвтий простите увлекся текста которые также моментально становятся видны всем. И смело разсыпать по уровню аптечки, побольше всевозможной снаряги, и прочие вундервафли в лице кваддемаги, дабы юзверь не скучал думаю идея ясна -------------------- с точки зрения аэродинамики шмель не может летать |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |