Zzepish, я бы такой алгоритм предложил (не претендуя на абсолютную истину
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
)
1. Как только файл загружен на сервер, то там получаем какой-то идентификатор процесса, который пишем на клиенте в localStorage.
2. Сервер спокойно обрабатывает данные столько времени, сколько ему требуется. По ходу дела пишет куда-нибудь данные о прогрессе (может быть в БД).
3. Получив идентификатор, не просто пишем его в локалСторедж, но и открываем WebSocket. На серверной стороне идет периодическая проверка состояния загрузки. Данные отправляются клиенту и отображаются юзеру в каком-то удобном виде.
4. Если во время загрузки юзер открыл другую страницу, то там считывается локалСторедж, получаем инфу о том, что была начата загрузка и возвращаемся к п.3. Если юзер открыл еще страницу, то повторяем п.4.
5. По окончании загрузки инфа об этом показывается юзеру, данные в локалСторедже удаляются, веб-сокет закрывается.
6. Если юзер просто закрыл все страницы, то при следующем входе он сразу увидит, что загрузка была завершена. Без открытия веб-сокета можно будет обойтись.
7. Ну и надо предусмотреть, как будут обрабатываться (показываться) данные при нескольких открытых одновременно страницах. В том числе, надо четко ловить изменения в локалСторедже на тех страницах, что были открыты до начала загрузки. Но это всё не так и сложно.
Что использовать на сервере? Да и ПХП можно, наверное
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
При открытии сокета запускаем демона, который "умирает" при закрытии сокета.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)