![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| qweasd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
Здравствуйте!
Есть сайт в нем пользователь указывает указывает файл который хочет загрузить на ftp сервак - далее этот файл копируется на другой комп и уже с него заливается на FTP сервак. Все это реализовано и работает. НО! при загрузке файла веб страница подвисает на время выполнения загрузки файла - и соответственно если файл большой то на долго. Вопрос: как сделать так чтобы на веб странице отобразило время загрузки на сервер, а процесс загрузки не зависел от отображения веб страницы?? |
|||
|
||||
| Jimy |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 4.7.2010 Репутация: нет Всего: 3 |
Смотрите в сторону Ajax.
С помощью JavaScript можно создать/изменить любой элемент DOM страницы, и соответственно можно в любом месте страницы отобразить любую нужную информацию. Есть библиотеки облегчающие работу с моделью DOM, например, jQuery (в ней также есть Ajax методы). На мой взгляд гораздо интересней вопрос не "как отобразить время загрузки на сервер", а "как спрогнозировать примерное время загрузки на сервер". ;-) |
||||
|
|||||
| qweasd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
а на Perl это возможно?
|
|||
|
||||
| Jimy |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 4.7.2010 Репутация: нет Всего: 3 |
что именно?
Заданные вопросы относятся к клиентской части функционала и к Perl отношение имеют весьма косвенное. Если я конечно правильно понял суть вопросов. Это сообщение отредактировал(а) Jimy - 2.9.2010, 12:04 |
|||
|
||||
| qweasd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
ну почему же косвенные!?
на счет:
может, как-то возможно на Perl запустить на сервере(из того-же скрипта который отобразил страницу пользователю), на котором выполнился скрипт, некий отдельный поток который и будет следить за закачкой файла на фтп-сервер Это сообщение отредактировал(а) qweasd - 2.9.2010, 12:09 |
|||
|
||||
| Jimy |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 4.7.2010 Репутация: нет Всего: 3 |
Когда Вы написали "процесс загрузки", то не уточнили о какой именно загрузке идет речь.
Я решил что самым медленным звеном является загрузка по HTTP поэтому про нее и писал.
Операционная система какая? |
|||
|
||||
| qweasd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
Suse Linux
|
|||
|
||||
| Jimy |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 4.7.2010 Репутация: нет Всего: 3 |
Только придется код, обрабатывающий загрузку файла, разместить в отдельном файле. Ну и если какие-то данные нужно передавать, то передавать их через аргументы в командной строке (например, имя передаваемого файла). Это сообщение отредактировал(а) Jimy - 2.9.2010, 14:25 |
|||
|
||||
| dva300 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: нет Всего: 1 |
согласен. если вы грузите 100Мб то задействовано ваше клиентское приложение - perl тут не причем. если же всеже речь идеть о этапе копирования файла на другой сервер - pipe & fork и не плодим лишних программ. --------------------
Участник движения Культура Вождения |
|||
|
||||
| qweasd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
вы не могли-бы продемонстрировать на примере "В Unix функция fork создает новый процесс, который является копией текущего. " - зачем мне заново выполнять весь скрипт? Это сообщение отредактировал(а) qweasd - 2.9.2010, 15:56 |
|||
|
||||
| dva300 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: нет Всего: 1 |
вы как скрестили не возможное. fork создает новый процес который является копией текущего только до момента вызова fork т.е новый процес разделяет с родительским все переменные, дискрипторы файлов и т.д. которые были до вызова fork это не есть заново выполнять скрипт. pipe в данном случае вам даст возможность читать информацию из дочернего процесса. конструкция вида
в какой-то степени тоже самое за исключением того что вам нужно две программы вместо одной. дакой вариант хорощ например когда вы вызываете какую-либо системную утилиту а не программируете логику дочернего процесса. какой пример вам нужен ? --------------------
Участник движения Культура Вождения |
||||
|
|||||
| infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Для подобных целей у меня организован пул задач в базе данных. Отдельный сервис берет оттуда задачи для выполнения, обрабатывает, и помечает как выполненные или проваленные. Так же периодически задача апдейтится прогрессом выполнения. Каждая задача имеет идентификатор по которому ажакс запрашивает состояние и прогресс.
|
|||
|
||||
| qweasd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
сделал вот так:
работает. Но есть два но: 1. файл грузится но постоянно не докачивается(докачиваются полностью только маленькие файлы) 2. после нажатия на странице кнопки аплоад - на странице отображает время для загрузки и (чего не должно быть) отображается, что ожидается ответ от 127.0.0.1. |
|||
|
||||
| dva300 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: нет Всего: 1 |
размер ?
что за время ? ...не совсем понял вопрос конечно сейчас задам совсем тупенький но зачем вы скриптом лезете на FTP сервер который расположен на этой же машине ? что-то мои лыжи совсем не едут. --------------------
Участник движения Культура Вождения |
||||
|
|||||
| qweasd |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
размер разный и каждый раз не дозакачивается 10-15% от общего объема. я имел ввиду что не должно быть отображения: что ожидается ответ от 127.0.0.1 - ну типо странице не все догрузила - такое бывает когда открываешь страницу с большим количеством картинок и до их полной загрузке отображается сообщение (ожидается ответ от 127.0.0.1(- подставить нужное ну резон мне тут писать реальные адреса?! а сервак удаленный? например ftp.microsoft.com - если вам так удобнее! |
||||||
|
|||||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |