Мне нужно написать индикатор выполнения, который отслеживает ход создания очень больших файлов PDF. Мы знаем, как очень точно отслеживать процесс создания PDF-файла на стороне сервера, но не можем найти хороший способ отслеживать статус из браузера.
Несколько предложений..
- Создайте guid для задания, когда запрос servlet/gwt-rpc запустит задание, верните guid клиенту. Каждые x секунд запрашивайте другой метод gwt-rpc с ранее возвращенным guid. По мере того, как происходит прогресс в медленно работающем процессе, мы помещаем статус в переменную сеанса с именем этого guid. Когда мы достигнем 100%, загрузите файл из динамически определенного местоположения и отправьте фактический файл в браузер через обычный сервлет.
- Используйте ajax-push, чтобы продолжительное http-соединение мгновенно отправляло статус.
Есть ли у кого-нибудь предложения по созданию надежного индикатора выполнения?
Любые предложения о том, как справиться с этим? Что касается пользовательского интерфейса, я, скорее всего, напишу свой собственный виджет, поскольку строка состояния проекта gwt-incubator устарела (вместе со всем проектом).