Хранение списка редактируемых файлов - PullRequest
1 голос
/ 09 сентября 2011

Я должен запрограммировать веб-приложение, которое позволяет пользователю создавать и изменять файлы.

Эти файлы будут храниться на сервере.В этом приложении в основном две страницы: на первой перечислены файлы, которые пользователь может просматривать.Пользователь нажимает на один из пунктов этого списка: это позволяет ему перейти на вторую страницу, где он может редактировать файл.

Моя проблема проста: я хочу убедиться, что вы не видите, вфайлы первой страницы (список всех файлов), которые в настоящее время изменяются другим пользователем (на второй странице).Приложение находится в Java EE с использованием Struts 1 (я не решил об этом).

Я рассмотрел, например, использование статического списка, который позволяет мне регистрировать все файлы, которые в данный момент открыты;Я бы положил файл в список, когда пользователь щелкнет и отредактирует файл.В идеальном мире, когда пользователь сохраняет свою работу или возвращается к списку, я бы удалял файл из списка.Однако:

  1. Это не поточно-ориентированный
  2. Что если пользователь только что закрыл браузер?

Каким образом вы решите эту проблему?

Ответы [ 2 ]

3 голосов
/ 09 сентября 2011

Безопасность потока легко добавляется к этому сценарию.Более важная проблема заключается в том, что файл должен автоматически разблокироваться после того, как пользователь, редактирующий файл, уходит, закрывает браузер, сжигает свой дом или что-то еще.Автоматическое освобождение файла в сочетании с некоторой командой обновления, периодически посылаемой из браузера, может решить эту проблему.

0 голосов
/ 09 сентября 2011

хорошо, вы можете сохранить таблицу в базе данных, которая содержит текущие открытые файлы для редактирования, и использовать javascript на второй странице, чтобы отслеживать, редактирует ли пользователь страницу, то есть пишет с клавиатуры, и если не подождать некоторое время, то сделайте позвоните на сервер, чтобы удалить файл и перенаправить пользователя на первую страницу. Надеюсь, это вам поможет?

...