powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Универсальный таймер (или коллекция)
23 сообщений из 23, страница 1 из 1
Универсальный таймер (или коллекция)
    #38282983
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<script>
var NForTimer=0;
function unanimate(th){
//alert('ok'+NForTimer);
NForTimer++;
  document.title=NForTimer+' '+th;
  if (NForTimer==100) clearInterval(timerId);
}
 var timerId = setInterval('unanimate(this)', 20);
</script>


Нужно сделать не один таймер, а управлять ими как классами, например создаю первый таймер с интервалом 20 и в то же время чтоб создать другой таймер который тоже будет использовать функцию unanimate но уже для него интервал может быть например 2000. Что именно он будет выполнять определит Eval которому команды будут переданы массивом.

как я понял из моего примера timerId = индекс таймера, а this не передает ничего о таймере который запускает функцию. Так как же узнать функции unanimate кто ее запускает ?
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38282987
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РАЗОБРАЛСЯ
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<script>
var NForTimer=0;
function unanimate(th){
//alert('ok'+NForTimer);
NForTimer++;
  document.title=NForTimer+' '+th;
  if (NForTimer==100) clearInterval(timerId);

}
 var timerId = setInterval('unanimate(timerId)', 20);
 var timerI = setInterval('unanimate(timerI)', 200);
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38282991
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так СОРИ была ошибочка с массивом. И теперь полностью рабочий код!
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<script>
var NForTimer=[];
function unanimate(th){
//alert('ok'+NForTimer);
if (!NForTimer[th]) NForTimer[th]=0;
NForTimer[th]++;
  document.title=NForTimer[th]+' '+th;
  if (NForTimer[th]==100) clearInterval(th);

}
 var timerId = setInterval('unanimate(timerId)', 20);
 var timerI = setInterval('unanimate(timerI)', 200);
 var t=2
eval('document.title=4');
 //alert(t);
</script>

е
В примере работают два таймера одновременно. Один досчитав до 100 быстрее закончил свою работу. Что и хотел увидеть
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38282995
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это простое решение даст возможность не использовать JQuery который хрен знает чем еще занимается
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38283000
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ах вон она оказывается цель

что ж, не хотите использовать - не используйте

если жКвери использовался Вами только для всяких очередей и анимаций, то он наверное Вам и не нужен
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38283004
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да с гантелей на шее - не хочу такого сайта
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38283023
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159ну да с гантелей на шее - не хочу такого сайта
Ага, jQuery - это гантеля, а этот говнокод - нет?
Код: javascript
1.
2.
3.
4.
5.
6.
...
var timerId = setInterval('unanimate(timerId)', 20);
var timerI = setInterval('unanimate(timerI)', 200);
...
eval('document.title=4');
...


Судя по уровню подготовки, делать выводы что такое хорошо, а что такое плохо, в отношении сайтостроения, тебе рановато. Возможно, и использовать jQuery тоже не нужно, но вот давать оценку с таким "багажом" - это нонсенс.
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38283025
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159работают два таймера одновременно. Один досчитав до 100 быстрее закончил свою работуможете рассмотреть еще такой подход
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function StartTimer(milliseconds) {
	var MAX_VALUE = 100,
		counter = 0,
		id = setInterval(function() {
			counter += 1;
			console.log(id.toString() + ' ' + counter);
			if (counter >= MAX_VALUE) {
				clearInterval(id);
			}	
		}, milliseconds);	
}

StartTimer(20);
StartTimer(200);

это просто для примера, а вообще реализаций может быть много
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38283108
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Не догадался. Отличный код, легче объявлять и массив не нужен. Не учел, хотя и знал о функции и многопоточности, но для таймера не учел что так можно сделать.
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38283132
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знал, ага.

Нет тут никакой многопоточности. И ее не было в принципе до недавних пор.
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38283253
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159Это простое решение даст возможность не использовать JQuery который хрен знает чем еще занимается

Читай, велосипедист: основы программной анимации на JavaScript .
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38284185
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
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.
27.
28.
29.
30.
31.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<button onClick="clearInterval(2)">stop</button>
<div id="ans1" style="top: 100px; left: 100px; z-index: 100; position: absolute; background-color:#CC0000">hjfdkhjdshkfsd</div>
<div id="ans2" style="top: 200px; left: 100px; z-index: 100; position: absolute; background-color:#CC0000">hjfdkhjdshkfsd</div>
<div id="ans3" style="top: 300px; left: 100px; z-index: 100; position: absolute; background-color:#CC0000">hjfdkhjdshkfsd</div>
<div id="ans4" style="top: 400px; left: 100px; z-index: 100; position: absolute; background-color:#CC0000">hjfdkhjdshkfsd</div>
<script>
StartTimer(1,"var s=document.getElementById('ans1');","s.style.left=(c*12)+'px';");
StartTimer(20,"var s=document.getElementById('ans2');","s.style.left=(c*12)+'px';");
StartTimer(10,"var s=document.getElementById('ans3');","s.style.left=(c*12)+'px';");
StartTimer(7,"var s=document.getElementById('ans4');","s.style.left=(c*12)+'px';");

function StartTimer(m,f,o){
var s;
	eval(f);
	var c=0;
	var i = setInterval(function(){c++;
			//document.title=i+' '+c;
			eval(o);
			if (c>=100) clearInterval(i);}
		,m);	
}
</script>
</body>
</html>


Не понимаю юмора. Главное результат. Многопоточность. Я так в визуале использую функцию вызывая ее из таймера. Зачастую когда она не успевает до конца справиться с запросом недождавшись ответа от GET POST метода, она запускается в тоже времья еще много раз и каждая работает как отдельная. В случаи удачи или неудачи срабатывает Exit Sub. Я это имел ввиду говоря о многопоточности, когда переменная внутри функции в каждой коллекции вызовов имеет свое значение. Только я не догнал сначало что можно присваивать к переменной событие таймера внутри функции и что оно также будет отдельно самостоятельно работать. А что вас так рассмешило
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38284203
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38284207
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159, почитайте статью про анимацию в JavaScript. Зачем этот ниндзя код с эвалами?
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38285314
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЗачем этот ниндзя код с эвалами?
Сам сайт будет пуст с необходимым функционалом, а все остальное будет догружаться без перезагрузки целой страницы.
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38285345
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159skyANAЗачем этот ниндзя код с эвалами?
Сам сайт будет пуст с необходимым функционалом, а все остальное будет догружаться без перезагрузки целой страницы.И как это связано с методом StartTimer и eval?
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38287193
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eval в моем случае - указание из сервера полученное методом Post, просто делаю все по своему без jquery с минимальной нагрузкой и прозрачным кодом
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38287222
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. серверные скрипты формируют JS код который отправляется на клиент и исполняется на клиенте и все это происходит с минимальной нагрузкой и исполнят максимально прозрачный и понятный код ?
при этом во множестве используются eval и setInterval ?
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38289114
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прозрачный - небольшой, понятный. для работы с анимацией там минимум того кода загружается с страницей. по сравнению с jquery - он и есть прозрачный. я просто объяснил "И как это связано с методом StartTimer и eval?", так как именно сценарий будет передан с сервера, а универсальная анимация заложена уже в скрипте заранее, только задаю начальную точку параметра и конечную + что сделать до начала анимации и после.
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38289656
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159, всё-таки прочитайте статью: основы программной анимации на JavaScript . Там нет jQuery, мамой клянусь!
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38289746
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читал. тоже работает на таймере. учат линейного и нелинейного перемещения объекта. это мне известно. всю нелинейность движения тестирую на VB6, потом списываю только формулы. есть книга по 3д анимации и программирование на c++ (сейчас на работе не могу посмотреть автора). там учат анимацию, выводят формулу, + физика поведения. Немножко пробовал на Blitz 3D Basic. Для JS особо ничего не надо. Top, Left, Height, Width, Opacite и Visible вначале или в конце, можно Lock окна делать, Z-index менять. и все. для этого использую Eval так как Constant инструкций нет, все указания с сервера
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38289826
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159и прозрачным кодомдовольно скоро он станет абсолютно непрозрачным, при таком подходе.
...
Рейтинг: 0 / 0
Универсальный таймер (или коллекция)
    #38290989
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо: Обсуждать подходы к анимации можно очень долго гораздо проще написать небольшой тест для анимации 105000 элементов
тогда легко можно будет сравнить количество необходимого кода простоту использования ну и качество анимации
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Универсальный таймер (или коллекция)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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