Привет Программеры WEB(a)!!!!..
у меня небольшая проблема, которая убила целый день и не разрешилась ... Цель: написать индикатор загрузки Язык: javascript а вот подробное обьяснение как начал: написал функцию обьявил 3 переменных(ышо помню как это делается ) присвоил им сие сроковое значение оформление индикатора пусчай будет таблицей // начало таблицы a = '<TABLE BORDER="0" WIDTH="120" CELLSPACING="1" CELLPADDING="0" BGCOLOR="#808080"><TR><TD><TABLE WIDTH="100%" HEIGHT="100%" BORDER="0" CELLSPACING="1" CELLPADDING="3" BGCOLOR="#C0C0C0" style = "FONT-SIZE:1px;"><TR>'; // средина (ячейки которые должны КРАСИТЬСЯ каким нибудь цветом ) // количество покрашенных ячеек зависит от времени // предположим что ячеек должно быть 20 b='<TD BGCOLOR="#808080" ALIGN="CENTER" VALIGN="TOP" > </TD>'; // ну и собственно конечные теги таблицы c='</TR></TABLE></TD></TR></TABLE>'; // осталось все это дело реализовать (собственно за этим тему и открыл) непАлУчАетЬся чЕтА может вы что подскажете... кста... нашел скрипт в инете, посмотрел и подумал ну его нах.. все можно сделать гораздо прощще Заранее благодарен за помощь... |
Есть более удобный вариант. Рисунок - вертикальная полоска в 1 пихель толщиной. По таймеру ширина рисунка увеличивается на dx. Реализация - см. справочник по клиентскому JS, методы window.setInterval, window.clearInterval или window.setTimeout, window.clearTimeout |
а если графика отключена? |
и JS _________________ Ин дер гросен фамилие нихт клювен клац-клац |
xdsl писал(а): Есть более удобный вариант. Рисунок - вертикальная полоска в 1 пихель толщиной. По таймеру ширина рисунка увеличивается на dx. Реализация - см. справочник по клиентскому JS, методы window.setInterval, window.clearInterval или window.setTimeout, window.clearTimeoutЧестно, была такая идея... но, суть другой заключаеться на максимум уменьшить нагрузку на сервер, следовательно снизить количество потребления трафика.. и еще хотелось бы оформить все это дело с минимальным процентом графики. Как гриться... и нас не напрягает.... и люди с выключиной мультимедией что то поймут |
нагрузки на сервер в таком случАе нет. отключенная графика? я только одного видел такого..
кстати. индикатор загрузки чего пишем? _________________ Ин дер гросен фамилие нихт клювен клац-клац |
andy ice писал(а): кстати. индикатор загрузки чего пишем?В данном случае, наверное, загрузки страницы |
andy ice писал(а): и JS допустим JS отключить не лзя.. т.к. проверяеться header на браузер, информацию смогут получить только те клиенты, которые используют IE 6 и выше. Есть какие нибудь идеи решения данной проблемы не используя графики? |
[quote="Brain"] andy ice писал(а): нагрузки на сервер в таком случАе нет. отключенная графика? я только одного видел такого..
кстати. индикатор загрузки чего пишем? Индикатор возможного обнавления страницы, клиент сможет обновить страницу тогда, когда идикатор покажет все закрашенные ячейки. Только визуально. Безопасность - чур на php |
о. понятно. типа рапидшары. где сцылка показывается через N секунд. а тут рефреш через N секунд. IMHO, нельзя запретить такое действо _________________ Ин дер гросен фамилие нихт клювен клац-клац |
Вобщем вот что я сваял:
Работает в IE, FF и Опере (кому-нибудь надо больше? ). Попытался сделать бар схожий с виндовсовсим Пользуйте. С Brain'а пЫво. |
А вот пример работы: http://m.shadrinsk.net:81/
Скорость исходящего трафика насильно ограничена до 28.8Kbps (как на стареньком модеме ). |
andy ice писал(а): о. понятно. типа рапидшары. где сцылка показывается через N секунд. а тут рефреш через N секунд. IMHO, нельзя запретить такое действоДействие рефреш - нельзя., но можно не выводить информациюю. Выдать 0 байт информации, или фразу типа "Ждите обновления" клиенту. Собстно так и планируеться |
ммм, а вот интересно, если js такой динамический, то наверно можно сделать рамку из таблицы, и чтоб по краю рамки ячейка залитая бегала? |
Konst писал(а): А вот пример работы: http://m.shadrinsk.net:81/
Скорость исходящего трафика насильно ограничена до 28.8Kbps (как на стареньком модеме ). Во!.. отличное решение.. респект!! |
Просто интересно, процесс, который отслеживается, на сервере происходит?
Если да, то не понимаю как, не общаясь периодически или постоянно с сервером, можно на клиенте узнать, что процесс завершен на 20%, 50%, 100% ... - все, разрешено обновлять страницу? |
видимо по времени _________________ Ин дер гросен фамилие нихт клювен клац-клац |
все верно..
после рефреша заносим время в БД... далее одно простое уловие.. если на данный момент время больше времени после рефреша + время через которое можно рефрешиться - рефрешим иначе блокируем информацию... а данный скрипт лишь для визуализации.. (ну эт дело индивидуальное) |
Понятно. К сожалению, ненадежно. Источник трудноуловимых ошибок в будущем, имхо. |
xdsl писал(а): Понятно. К сожалению, ненадежно. Источник трудноуловимых ошибок в будущем, имхо.Можно пАподробней, нехотелось бы допускать подобные ошибки |
Заранее невозможно сказать, сколько времени будет выполняться та или иная операция на сервере. Во время ее выполнения может, например, подключится еще несколько клиентов, запуститься задача по расписанию, да вообщем много чего может случиться, от вас не зависящего. Причем это не форсмажор, а совершенно стандартные ситуации. |
Brain
ну и задачку для размышления подкинул, сам захотел такого. Но просто по времени нереально... |
Вот самописный индикатор, php + JS (оптимизация под все браузеры с включеным JS)
--------- http://cns.shadrinsk.net/ind.rar |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы |