![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
NetFlame |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.3.2006 Где: Москва Репутация: нет Всего: нет |
Добрый день!
Хотелось бы посмотреть пример ( если такой существует ): При определенном событии появляется статус-бар в браузере пользователя и начинает проверять определенный файл на его содержимое. Например, если в файле содержимое 5, то на прогрессбаре появится 5 процентов и т.д. Для чего это надо: мне нужно отображать процент выполнения php скрипта, который очень долго выполняется. И на определенных этапах, скрипт будет записывать в файл процент его выполнения, а javascipt его считывать и отображать в браузере. Заранее спасибо. |
|||
|
||||
dsCode |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
NetFlame, а в чем проблема?
- запускаете первый (который долго выполняется) скрипт на выполнение - параллельно запускаете скрипт, считывающий запись из файла; в соответствии с полученным числом - изменяете ширину дива или картинки "прогресса" Как работать с аяксом - поищите на форуме, технология уже далеко не новая - есть куча статей и примеров. |
|||
|
||||
NetFlame |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.3.2006 Где: Москва Репутация: нет Всего: нет |
dsCode, мне нужен конкретный пример, на форуме искал - не нашел, а с явой ( тем более аяксом ) у меня, мягко говоря, не очень...
|
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Прогрессбар - картинка position:absolute; top:0px; left:-{wdith}px; в div'е с фиксированными размерами, position: relative; overflow: hidden; Сдвигаем картину вправо - загрузка. Картинку можно заменить другим div'ом если не нужна анимация.
После начала процесса (к примеру отослали файл), создаём ифрейм, опрашиваем php скрипт. Скрипт не закрывает соединение, пишет с интервалом в 2-3 секунды:
Естественно ограничений по времени у него быть не должно. Скрипт замеряет прогресс у себя и просто раппортирует его. Если отсылаем файл, то его можно отослать сразу в ифрейм, но тогда прогресса не заметим пока файл полностью не будет загружен на сервер (а там работа обычно 1-3 секунды, прогрессбар не нужен...) *по времени, а не по скорости, опечатался ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
NetFlame |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.3.2006 Где: Москва Репутация: нет Всего: нет |
Выглядит отлично, но слишком сложно
![]() |
|||
|
||||
ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Можно и без фреймов...
Мне было лениво выписывать ajax вручную, да и зависимость уже, видимо сформировалась, так что пример с jQuery... Вот примерно так
Ну и сам longtest.php
Все это добро работает под Windows с Денвером. Чтобы перенастроить запуск фонового процесса на чего-то свое - править в 7 строчке нужные буквы... Это сообщение отредактировал(а) ksnk - 8.3.2008, 23:37 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
||||
|
|||||
Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 12 Всего: 34 |
У меня с длительной обработкой возникали проблемы с обрыванием сервером выполнения скрипта при тайм-ауте
![]() Поэтому я сейчас делаю проще через AJAX либо через iframe вызывается скрипт, у котого стоит ограничение на время выполнения (я ставлю 10 сек, чтобы не очень часто вызывать и при этом не по 1-2 минуте обновления прогрессбара), при заверешении скрипт пишет в результат процент выполнения, это и отображается на картинке с помошью свойства width="..%", положенную либо в div, либо в ячейку таблицы. Sardar, ты конечно, наверное, скажешь, что не эффективно, зато надежно - да повышается нагрузка из-за запуска и выгрузки скрипта, но я точно знаю, что по таймауту скрипт не выгрузиится и прогресс-бар не остановится. |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Нет конечно, просто твой метод требует параллельного процесса-монитора, сервис которого опрашиваем - это вряд ли под силу начинающему (особенно вопросы правильной блокировки/синхронизации тредов). Отправить же файл и получать уведомления до готовности в одном запросе - шутка по силам любому ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
NetFlame |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.3.2006 Где: Москва Репутация: нет Всего: нет |
Нашел 100% то, что надо __tp://javanet1-staging.locaweb.com/ajax-progress-bar/
Но исходников нет ![]() |
|||
|
||||
NetFlame |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.3.2006 Где: Москва Репутация: нет Всего: нет |
Отлчино, нашел
task?action=startTask Всё готово )) |
|||
|
||||
NetFlame |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.3.2006 Где: Москва Репутация: нет Всего: нет |
В IE не работает... на
Выдет Ошибку - Требуется объект. |
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |