powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Циклический replace с паузой
14 сообщений из 14, страница 1 из 1
Циклический replace с паузой
    #38352345
qwerty4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите нубу.

Хочу, чтоб (можно и обойтись но уже охота разобраться) замена текста была заметна глазу, то есть проходила медленне.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
setTimeout(function(){
var rows = document.getElementsByClassName("title");
function highlight(findme, elements, index){
	index = typeof index !== 'undefined' ? index : 0;
	if(!elements[index])return;
	var HIGHLIGHT = new RegExp(findme, "ig");
	elements[index].innerHTML = elements[index].innerHTML.replace(HIGHLIGHT, '<em>' + findme +'</em>');
	setTimeout(function(){	highlight(findme, elements, i++);	}, 300);
}
highlight('журнал', rows);
}, 2000);



Пропускает индекс 1, 2, 3, 4.

То есть element[0], element[5], element[6], element[7] и т.д.... обрабатываются, а те четыре пропускаются =)
...
Рейтинг: 0 / 0
Циклический replace с паузой
    #38352396
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не вижу где объявлена переменная i
...
Рейтинг: 0 / 0
Циклический replace с паузой
    #38352403
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
document.getElementsByClassName

А эта функция с каких пор существует?
...
Рейтинг: 0 / 0
Циклический replace с паузой
    #38352407
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Циклический replace с паузой
    #38352658
qwerty4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Паганель,

Да, лучше б я сразу спать пошел. Так работает

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
setTimeout(function(){
var rows = document.getElementsByClassName("title");
function highlight(findme, elements, index){
	index = typeof index !== 'undefined' ? index : 0;
	if(!elements[index])return;
	var HIGHLIGHT = new RegExp(findme, "ig");
	elements[index].innerHTML = elements[index].innerHTML.replace(HIGHLIGHT, '<em>' + findme +'</em>');
	index++;
	setTimeout(function(){	highlight(findme, elements, index);	}, 300);
}
highlight('журнал', rows);



спасибо
...
Рейтинг: 0 / 0
Циклический replace с паузой
    #38353604
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
setTimeout(function(){
...
setTimeout(function()



Бред. Заменить на setInterval.
...
Рейтинг: 0 / 0
Циклический replace с паузой
    #38353608
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня где-то есть чудовищный скрипт весь работающий в цикле. С трудом теперь верится что я его когда-то написал и даже 0.16 версий осилил.

С интервалом фишка в том, что вы можете менять скорость не меняя интервала самого. Нашел начала того скрипта.

Код: javascript
1.
2.
3.
4.
5.
6.
function checkWork() {

	if (MH_pass-- > 0) return;
// ....
           MH_pass = 10;
...



Допустим вы поставили 0.1 сек, и MH_pass = 10. Значит раз в сек будет срабатывать. Но самая мякотка в возможности менять скорость по обстоятельствам. Потребовалось какой-то функции помедленнее, помедленнее - она самостоятельно уменьшила скорость, или наоборот, если возбудилась - увеличила. :)
...
Рейтинг: 0 / 0
Циклический replace с паузой
    #38353609
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разумеется переменная задержки должна быть в глобалскопе. Что отмечено двумя большими буквами в примере.
...
Рейтинг: 0 / 0
Циклический replace с паузой
    #38353614
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Позже я ознакомился с подобными скриптами но подобного не нашел.

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

Так вот, это есть такой древний способ программирования приборов всяких. Запускаем процесс за один цикл делает все что требуется. А если не успевает - интерактивно замедляет цикл, а когда успевает - ускоряет цикл.
...
Рейтинг: 0 / 0
Циклический replace с паузой
    #38353883
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
debloggerУ меня где-то есть чудовищный скрипт весь работающий в цикле. С трудом теперь верится что я его когда-то написал и даже 0.16 версий осилил.

С интервалом фишка в том, что вы можете менять скорость не меняя интервала самого. Нашел начала того скрипта.

Код: javascript
1.
2.
3.
4.
5.
6.
function checkWork() {

	if (MH_pass-- > 0) return;
// ....
           MH_pass = 10;
...



Допустим вы поставили 0.1 сек, и MH_pass = 10. Значит раз в сек будет срабатывать. Но самая мякотка в возможности менять скорость по обстоятельствам. Потребовалось какой-то функции помедленнее, помедленнее - она самостоятельно уменьшила скорость, или наоборот, если возбудилась - увеличила. :)Никаких гарантий по точному времени вызова ни setTimeout(), ни setInterval() не даёт.
Если браузер будет неуспевать вызывать функцию, указанную в setInterval() (и это не редкая ситуация, особенно если операции DOM-рендеринг не оптимизированы), то поведение различается - смотря какой браузер.
Наример, в одних вызовы будут игнорироваться (ИЕ например), а в других накапливаться и потом "выстреливаться" подряд один за другим.
Так что использование setTimeout() может снизить накладные расходы по промежуточным холостым вызовам setInterval(), и handler запоминать нужно только для отмены срабатывания функции (если я не ошибаюсь - если не запоминать - потом браузер подчистит сам).
...
Рейтинг: 0 / 0
Циклический replace с паузой
    #38354356
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения, переврал насчёт "накапливания" вызовов - это если и было, то давно и явный баг.
Попробую исправиться - здесь про рендеринг и заодно потребление памяти бразурами - поэтому и выложилСинтетический пример, рендерить там почти нечего, но немного иллюстрирует проблему.
На моём компьютере от 100000 до 1000000 явно видно, что Chrome и Opera12 не обновляют последовательно (Chrome во время каждого старта).
FireFox очень хорош, но кушает и не освобождает память при перезагрузке страницы.
Других браузеров под рукой нет.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var count=0,hdl;
function f1() {
  var i,t='',h=document.getElementById('id1'); 
  count+=1; h.innerHTML=count.toString();
  for (i=0;i<100000;i+=1) { t+=f2(i); }
  return t;
}
function f2(i) { return i+' '; }
</script>
</head>
<body>
<div id="id1" style="padding:10px;">0</div>
<input type="button" value="Старт" onclick="if(!hdl)hdl=setInterval(f1,20)" />
<input type="button" value="Стоп" onclick="if(hdl){clearInterval(hdl);hdl=null}" />
</body>
</html>

...
Рейтинг: 0 / 0
Циклический replace с паузой
    #38354360
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ой, не тот код скопипастил. Вот код, где память кушается, и можно играться нагрузкой/памятью - строками
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var count=0,hdl,temp;
function f1() {
  var i,t='',h=document.getElementById('id1'); 
  count+=1; h.innerHTML=count.toString();
  for (i=0;i<500000;i+=1) { t+=f2(i); }
  temp=t;
}
function f2(i) { return i+' '; }
</script>
</head>
<body>
<div id="id1" style="padding:10px;">0</div>
<input type="button" value="Старт" onclick="if(!hdl)hdl=setInterval(f1,20)" />
<input type="button" value="Стоп" onclick="if(hdl){clearInterval(hdl);hdl=null}" />
</body>
</html>

...
Рейтинг: 0 / 0
Циклический replace с паузой
    #38355978
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ява-скрипт не предназначен для использования на атомных станциях для контроля расщепления урана, но для часиков на сайте и всякого рода анимации как у автора темы никаких препятствий быть не может. Конечно, если загрузить как следует то подвиснет, но мы же говорим о мере, а не о крайностях.

С одного сайта выкачиваю и собираю в канвасе 256 картнок в общий пикселяж 3000 на 3000 пикселов. Ява-скриптом. Скрипт, падлюга, пердит но ни одного события onload не теряет. С чего бы потерялись события онтайм?
...
Рейтинг: 0 / 0
Циклический replace с паузой
    #38356117
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
debloggerС одного сайта выкачиваю и собираю в канвасе 256 картнок в общий пикселяж 3000 на 3000 пикселов.
Можно посмотреть на сие явление?
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Циклический replace с паузой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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