Как создать полосу загрузки? Например, когда пользователь заходит на портал, в котором он хочет оставить свой файл, нажимает на кнопку загрузить и его файл загружается на сервер портала, когда идет загрузка файла, он видит полосу загрузки. Как это сделать? Если не тяжело напишите пример кода.
Благодарю за помощь!
1. scar - 29 Августа, 2007 - 06:10:45 - перейти к сообщению
2. Alfa - 29 Августа, 2007 - 06:20:47 - перейти к сообщению
scar
забудь, не так просто что-бы ты смог сделать, это по технологиам Ajax надо делать. Если не понятно что такое ajax тогда: google.ru
забудь, не так просто что-бы ты смог сделать, это по технологиам Ajax надо делать. Если не понятно что такое ajax тогда: google.ru
3. scar - 29 Августа, 2007 - 06:23:36 - перейти к сообщению
Alfa пишет:
забудь, не так просто что-бы ты смог сделать, это по технологиам Ajax надо делать. Если не понятно что такое ajax тогда: google.ru
Т.е. на PHP это зделать не возможно?
4. Alfa - 29 Августа, 2007 - 06:34:21 - перейти к сообщению
scar пишет:
Т.е. на PHP это зделать не возможно?
на рнр и надо делать + еше Ajax
Почему не хватает одного рнр или JS? потому что рнр не может изменять контент страницы не перезагрузив её, а JS может, но он не может связыватся с сервером, откуда быдет брать инфу для скрипта, в итоге тебе значит надо Ajax-ом работать, то есть что-бы данные с сервера присалались в бэкграунде, не перезагружая страницу, это делается посредством какого-то мoдуля XML, конкретно в деталях не могу сказать, т.к. сам не знаю, разбираюшиися в этом человек тебе объяснит
5. scar - 29 Августа, 2007 - 06:52:44 - перейти к сообщению
Alfa пишет:
Почему не хватает одного рнр или JS? потому что рнр не может изменять контент страницы не перезагрузив её, а JS может, но он не может связыватся с сервером, откуда быдет брать инфу для скрипта, в итоге тебе значит надо Ajax-ом работать, то есть что-бы данные с сервера присалались в бэкграунде, не перезагружая страницу, это делается посредством какого-то мoдуля XML, конкретно в деталях не могу сказать, т.к. сам не знаю, разбираюшиися в этом человек тебе объяснит
Т.е. Аджакс может выполнять много действий на одной странице не перезагружая ее?
6. Furax - 29 Августа, 2007 - 06:56:55 - перейти к сообщению
Ни PHP, ни Ajax не смогут сделать именно полосу загрузки. Дело в том, что сценарий php не запустится до тех пор, пока все вложения не будут загружены, а узнать, какая часть вложения уже передана, средствами js невозможно.
Тут уже надо лепить полноценное серверное приложение (скажем, C++) и снюхивать с ним JS.
Тут уже надо лепить полноценное серверное приложение (скажем, C++) и снюхивать с ним JS.
7. Furax - 29 Августа, 2007 - 06:59:52 - перейти к сообщению
scar пишет:
Может. Но полоса загрузки от этого не появится. Можно, конечно, замерить скорость подключения, поделить на неё объём файла (который пользователю придётся ввести ручками, т. к. JS не имеет доступа к файлам, а PHP срабатывает уже после окончания загрузки) и отсчитывать время, но ведь скорость далеко не постоянна... И далеко не всегда входящая скорость равна исходящей...
Т.е. Аджакс может выполнять много действий на одной странице не перезагружая ее?
8. Alfa - 29 Августа, 2007 - 07:44:10 - перейти к сообщению
Я помню была такая полоса загрузки была на каком-то сайте Need4Speed-a только там показывала сколько было скачено я не сколько загруженно.
Скорее всего
Furax пишет:
Тут уже надо лепить полноценное серверное приложение (скажем, C++)
Скорее всего
9. scar - 29 Августа, 2007 - 07:55:04 - перейти к сообщению
Я понял, что это не так просто сделать. Можно сделать, так что бы во время загрузке по середине окна браузера появлялся гиф анимация, а после того как файл закачается гиф-анимация исчезала. Как это сделать?
10. Furax - 29 Августа, 2007 - 08:23:47 - перейти к сообщению
scar
Так... Первое, что приходитв голову - это вынести форму загрузки файла в отдельный фрейм (не есть хорошо, конечно, но раз уж ты хочешь отправлять файл на сервер без перезагрузки страницы...). Далее, в этой форме помещаем javaскрипт, который бы сообщал основному окну стрницы, что пошла закачка. Основное окно вешает эту картинку (а под ней, от греха подальше, кнопку "Отмена" на середину экрана и ждёт. После загрузки файла новый загруженный во фрейм документ просит главное окно снять картинку. При щелчке на "Отмене" закачка прекращается, во фрейм грузится заново форма закачки, снимается картинка. Только и сервер должен иметь возможность понять, что закачка прервана.
На пальцах вроде всё... Или тебе в виде кода?
Так... Первое, что приходитв голову - это вынести форму загрузки файла в отдельный фрейм (не есть хорошо, конечно, но раз уж ты хочешь отправлять файл на сервер без перезагрузки страницы...). Далее, в этой форме помещаем javaскрипт, который бы сообщал основному окну стрницы, что пошла закачка. Основное окно вешает эту картинку (а под ней, от греха подальше, кнопку "Отмена" на середину экрана и ждёт. После загрузки файла новый загруженный во фрейм документ просит главное окно снять картинку. При щелчке на "Отмене" закачка прекращается, во фрейм грузится заново форма закачки, снимается картинка. Только и сервер должен иметь возможность понять, что закачка прервана.
На пальцах вроде всё... Или тебе в виде кода?