Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Универсальный таймер (или коллекция) / 23 сообщений из 23, страница 1 из 1
02.06.2013, 20:47
    #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
02.06.2013, 20:56
    #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
02.06.2013, 21:04
    #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
02.06.2013, 21:07
    #38282995
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный таймер (или коллекция)
Это простое решение даст возможность не использовать JQuery который хрен знает чем еще занимается
...
Рейтинг: 0 / 0
02.06.2013, 21:14
    #38283000
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный таймер (или коллекция)
ах вон она оказывается цель

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

если жКвери использовался Вами только для всяких очередей и анимаций, то он наверное Вам и не нужен
...
Рейтинг: 0 / 0
02.06.2013, 21:19
    #38283004
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный таймер (или коллекция)
ну да с гантелей на шее - не хочу такого сайта
...
Рейтинг: 0 / 0
02.06.2013, 21:52
    #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
02.06.2013, 21:54
    #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
03.06.2013, 03:29
    #38283108
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный таймер (или коллекция)
Спасибо. Не догадался. Отличный код, легче объявлять и массив не нужен. Не учел, хотя и знал о функции и многопоточности, но для таймера не учел что так можно сделать.
...
Рейтинг: 0 / 0
03.06.2013, 07:59
    #38283132
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный таймер (или коллекция)
Знал, ага.

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

Читай, велосипедист: основы программной анимации на JavaScript .
...
Рейтинг: 0 / 0
03.06.2013, 18:20
    #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
03.06.2013, 18:29
    #38284203
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный таймер (или коллекция)
...
Рейтинг: 0 / 0
03.06.2013, 18:31
    #38284207
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный таймер (или коллекция)
Андрей159, почитайте статью про анимацию в JavaScript. Зачем этот ниндзя код с эвалами?
...
Рейтинг: 0 / 0
04.06.2013, 15:18
    #38285314
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный таймер (или коллекция)
skyANAЗачем этот ниндзя код с эвалами?
Сам сайт будет пуст с необходимым функционалом, а все остальное будет догружаться без перезагрузки целой страницы.
...
Рейтинг: 0 / 0
04.06.2013, 15:32
    #38285345
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный таймер (или коллекция)
Андрей159skyANAЗачем этот ниндзя код с эвалами?
Сам сайт будет пуст с необходимым функционалом, а все остальное будет догружаться без перезагрузки целой страницы.И как это связано с методом StartTimer и eval?
...
Рейтинг: 0 / 0
05.06.2013, 17:39
    #38287193
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный таймер (или коллекция)
eval в моем случае - указание из сервера полученное методом Post, просто делаю все по своему без jquery с минимальной нагрузкой и прозрачным кодом
...
Рейтинг: 0 / 0
05.06.2013, 18:02
    #38287222
Малыхин Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный таймер (или коллекция)
т.е. серверные скрипты формируют JS код который отправляется на клиент и исполняется на клиенте и все это происходит с минимальной нагрузкой и исполнят максимально прозрачный и понятный код ?
при этом во множестве используются eval и setInterval ?
...
Рейтинг: 0 / 0
06.06.2013, 21:25
    #38289114
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный таймер (или коллекция)
прозрачный - небольшой, понятный. для работы с анимацией там минимум того кода загружается с страницей. по сравнению с jquery - он и есть прозрачный. я просто объяснил "И как это связано с методом StartTimer и eval?", так как именно сценарий будет передан с сервера, а универсальная анимация заложена уже в скрипте заранее, только задаю начальную точку параметра и конечную + что сделать до начала анимации и после.
...
Рейтинг: 0 / 0
07.06.2013, 10:45
    #38289656
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный таймер (или коллекция)
Андрей159, всё-таки прочитайте статью: основы программной анимации на JavaScript . Там нет jQuery, мамой клянусь!
...
Рейтинг: 0 / 0
07.06.2013, 11:17
    #38289746
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный таймер (или коллекция)
читал. тоже работает на таймере. учат линейного и нелинейного перемещения объекта. это мне известно. всю нелинейность движения тестирую на VB6, потом списываю только формулы. есть книга по 3д анимации и программирование на c++ (сейчас на работе не могу посмотреть автора). там учат анимацию, выводят формулу, + физика поведения. Немножко пробовал на Blitz 3D Basic. Для JS особо ничего не надо. Top, Left, Height, Width, Opacite и Visible вначале или в конце, можно Lock окна делать, Z-index менять. и все. для этого использую Eval так как Constant инструкций нет, все указания с сервера
...
Рейтинг: 0 / 0
07.06.2013, 11:36
    #38289826
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный таймер (или коллекция)
Андрей159и прозрачным кодомдовольно скоро он станет абсолютно непрозрачным, при таком подходе.
...
Рейтинг: 0 / 0
07.06.2013, 20:00
    #38290989
Малыхин Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Универсальный таймер (или коллекция)
имхо: Обсуждать подходы к анимации можно очень долго гораздо проще написать небольшой тест для анимации 105000 элементов
тогда легко можно будет сравнить количество необходимого кода простоту использования ну и качество анимации
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Универсальный таймер (или коллекция) / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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