|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.11.2009, 09:12 | #1 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,179
|
информирование пользователя о % исполнения
Собственно имеем некий процесс в PHP (открытие и обработка большого файла) - хотелось бы информировать пользователя о % исполнения.... или просто показывать счетчик обработанных строк...
как лучше поступить? хочу использовать JQuery Ajax для этого - но вот как что запутался: запустили процесс - передали счетчик=0 в скрипт - в скрипте обработали - увеличили счетчик на 1 - передали на фронтенд, отобразили - опять передали в бекенд-скрипт ...итд..... не будет ли это слишком расточительно - туда сюда запросами кидаться? |
30.11.2009, 16:18 | #2 |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
а другого выхода нет
Чтобы не было затратно, сервер по первому запросу клиента должен подсчитывать "скорость прогресса" и отправлять клиенту вместе ответом о прогрессе ещё и достаточный интервал запроса. Например: У вас файл обрабатывается 4 часа. При первом запросе от клиента сервер говорит что сделано 25% и исходя из заданной вами формулы считает что следующий запрос о прогрессе клиенту стоит отправить через 5 минут, тк за меньшее время ничего не измениться. Соответсвенно чем сильнее надо экономить тем большее время следующего запроса может отправлять сервер. Ближе концу отбработки можно назначать время меньше, чтобы клиент не ждал, после окончания работы.
Стрелок-охотник
|
01.12.2009, 03:14 | #3 |
Пользователь
Регистрация: 10.11.2009
Сообщений: 48
|
Если не ошибаюсь, достаточно просто JS, называйте меня консерватором, но к чему АЯКС вешать куда надо и куда не надо?
Просто отправляйте данные, игнорируйте юзер_аборт. В роли данных нечто вида <script>func_show_progress(int_cur_ progress_state);</script>, ну и в теле должна уже быть функция, обрабатывающая данное. ЗЫ: а вообще я бы не так делал, а следующим путем - есть скрипт, который занимается своей работой, периодически скидывая в БД/файл показатели текущего прогресса, а само информирование - отдельный скрипт, который только этим и занимается и рефрешится с определенной периодичностью. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Компонент для исполнения команд | postal2 | Компоненты Delphi | 2 | 15.10.2009 18:10 |
Разница исполнения под Windows XP и Windows Server 2003? | -Nast- | Общие вопросы Delphi | 0 | 02.06.2009 09:20 |
Права пользователя | Zloy_Doomer | Операционные системы общие вопросы | 5 | 18.12.2008 17:11 |
С++ Builder Изменение размеров компонентов на форме во время исполнения программы | Bair | C++ Builder | 3 | 18.12.2008 13:43 |
Как запустить приложение, дождаться его исполнения и только потом выполнять код? | il76 | Win Api | 6 | 19.07.2007 14:00 |