Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Изменение innerHTML в цикле %) / 11 сообщений из 11, страница 1 из 1
24.12.2008, 15:42
    #35732697
Tror
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение innerHTML в цикле %)
Добрый день

у меня есть кусок кода

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<html>
 
<head>
 
<title></title>
 
<script type="text/javascript" language="javascript">
    function forit()
    {
        document.getElementById("www").innerHTML = "Beginning";
        for (var i =  0 ; i <  5000 ; i++)
        {
            document.getElementById("www").innerHTML = i;
        }
        document.getElementById("www").innerHTML = "Ending";
    }
</script>
</head>
 
<body>
<span id="www"></span>
 
<input type="button" value="click" onclick="forit()"/>
</body>
 
</html>

Будучи наивным по соей природе, я подумал что значение иннерХТМЛ будет меняться в цикле и будет видно сразу же, а в итоге получается что мы увидим только "Ending". Яваскриптом болею недавно, так что не серчайте. Если можно объясните, пожалуйста, как быть в таких случаях или можно кинуть ссылкой на какую нибудь умную статью.

Заранее спасибо всем откликнувшимся
...
Рейтинг: 0 / 0
24.12.2008, 16:10
    #35732828
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение innerHTML в цикле %)
Trorв итоге получается что мы увидим только "Ending"
Таки чего хочеш-то? Ведь циклы-то они быстрые...
...
Рейтинг: 0 / 0
24.12.2008, 16:11
    #35732832
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение innerHTML в цикле %)
Читать про setInterval и setTimeout, например в гугле.
...
Рейтинг: 0 / 0
24.12.2008, 16:22
    #35732873
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение innerHTML в цикле %)
"Быть в таких случаях" - это как? Вопрос-то не сформулирован ... Надо знать, что ты хочешь получить.
Если нужен простой счет с задержкой, то для этого есть функции setTimeout/clearTimeout и setInterval. С помощью них можно реализовать без проблем что-то вроде "секундомера" с нужной задержкой.
Если же нужно просто удостовериться, что в поле вывелось значение и после этого переходить на следующую итерацию, то надо ставить обработку события - к примеру, onpropertychange, которая после invoke увеличит счетчик. Однако и в этом случае увидеть практически ничего не получится - уж слишком быстро все это работает. Подозреваю, что вывода и в этом случае не будет, хотя утверждать не берусь.

Поэтому сформулируй, что надо, может, поможем.
...
Рейтинг: 0 / 0
24.12.2008, 16:35
    #35732916
Tror
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение innerHTML в цикле %)
мне от сервера приходит ответ в виде json. ответ представляет структуру меню в зависимости от различных параметров. так вот в зависимости от размера генерируемого меню это может продолжаться от полутора до пяти секунд. в это время мне надо показать пользователю что есть какой то прогресс. с самого начала я решил что во время исполнения моего скрипта юзеру будет показываться анимированный гиф имитирующий прогресс, НО ....... умнее всех как всегда оказался Internet Explorer. При выполнении сколько-нибудь продолжительного скрипта все анимированные гифы на страничке замирают. Причем только в осле. что с этим делать и если ли решения данной проблемы не смог найти. Может здесь что-нибудь слышали по этой теме?
...
Рейтинг: 0 / 0
24.12.2008, 18:51
    #35733434
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение innerHTML в цикле %)
Ну конечно слышали ...
Анимированный гиф после каждого цикла проигрывания обращается к серверу, отсюда и задержка. Используй флешку или статическое изображение.
...
Рейтинг: 0 / 0
24.12.2008, 19:42
    #35733497
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение innerHTML в цикле %)
IDVsbruckНу конечно слышали ...
Анимированный гиф после каждого цикла проигрывания обращается к серверу, отсюда и задержка. Используй флешку или статическое изображение.
или имаджик вставь прямо плошняком в файл. Чтоыб html сразу содержал в себе и сам рисунок.
...
Рейтинг: 0 / 0
25.12.2008, 01:16
    #35733818
Tror
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение innerHTML в цикле %)
IDVsbruckАнимированный гиф после каждого цикла проигрывания обращается к серверу

спасибо, посмеялся.
...
Рейтинг: 0 / 0
25.12.2008, 01:17
    #35733819
Tror
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение innerHTML в цикле %)
Ренатили имаджик вставь прямо плошняком в файл. Чтоыб html сразу содержал в себе и сам рисунок.
говорю же все анимированные гифки на странице замерзают, независимо от их расположения
...
Рейтинг: 0 / 0
25.12.2008, 02:01
    #35733831
Frenzy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение innerHTML в цикле %)
менюшка не должна рисоваться от 1.5 до 5 секунд - думайте-оптимизируйте. это действительно бок что яваскриптовый поток намертво вешает эксплорер.

хотя идея есть - рисуйте тем же скриптом индикатор прогресса - т.е. допустим у вас обрабатывается ваш json, а вы допустим на каждые 100 итераций в добавок к тому что он там делает рисуйте юзеру точку или сделайте аля прогрес бар парой дивов и цссом и пусть там чегонибудь бегает туда-сюда - вобщем думаю идея ясна, на сколько фантазии хватит.

_______________________________________
2pro4U
...
Рейтинг: 0 / 0
25.12.2008, 02:06
    #35733833
Frenzy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение innerHTML в цикле %)
Frenzyхотя идея есть - рисуйте тем же скриптом индикатор прогресса - т.е. допустим у вас обрабатывается ваш json, а вы допустим на каждые 100 итераций в добавок к тому что он там делает рисуйте юзеру точку или сделайте аля прогрес бар парой дивов и цссом и пусть там чегонибудь бегает туда-сюда - вобщем думаю идея ясна, на сколько фантазии хватит.

а, я видимо невнимательно прочитал, вы чтото подобное и пытаетесь реализовать )) попробуйте действительно поэкспериментировать не с иннерХТМЛ а например с позицией дива, цветом или ещё чем-нибудь аналогичным. сетИнтервал не пройдёт - он даже не вызовится пока какой-то большой цикл не закончит работать
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Изменение innerHTML в цикле %) / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]