ПредишенСледващото

В програмирането, скриптови езици от време на време е необходимо да се създаде пауза - пауза в програмата за известно време, и след това да продължи. Така например, в сценария VBS и PHP са възможни методи:

VBS: wscript.sleep 1500 (спиране на 1,5 секунди)

PHP: сън (10); (Стоп за 10 секунди)

  1. I = 1;
  2. отложи добавяне на позиция "1" до полето за въвеждане на 0.9 секунди;
  3. непосредствено след изложението на проблем линия преминава допълнително: I = 2;
  4. отложи добавянето на цифрата "2" за полето за въвеждане на 0.9 секунди;
  5. .

Веднага означава, например, 1 мс (т.е. несъразмерно малки в сравнение с 900 мс) цикъл prozvedot работата си почти мигновено, създавайки няколко предстоящи задачи от една и съща точка на времето. Това означава, че всички предстоящи задачи за "рисуване", ще бъдат извършени почти по едно и също време, без паузи между добавяне на нови номера. започва цикъл; всичко спира за 0,9 секунди; и shirrr - всички цифри са изстреляни в ред една след друга.

И в този случай правото да използва setTimeout. Тя е сложно. Ще трябва да извикате функция рекурсивно (вътре разполага същата функция), както и че този процес не е безкраен, задаване на състоянието спирка (например, стойността на отпечатаните цифри):

И все пак трябва да се инициализира променлива и е функция - например, както следва:

Сега всичко работи както трябва да (намалихме времезакъснението от 0,9 и до 0,4 и). Но за такива задачи логично все още не се прилага setTimeout и setInterval (въпреки че ще трябва две функции):

Особеността на метода Javascirpt setInterval е, че тя не минава "от само себе си", е необходимо да се спре специален метод clearInterval. И за да стане ясно, че тя е да се спре, проблемът за разсрочено действие се определя идентификатор - таймер: (.) ​​Window.timer1 = window.setInterval.

Документи за самоличност могат да бъдат зададени едни и същи задачи и генерирани от setTimeout. Всички идентификатори таймери трябва да са различни един от друг (да е уникален в рамките на текущия прозорец на браузъра). Тогава можете да създадете един прозорец в няколко различни задачи с помощта на разсрочено действие, а тези задачи се изпълняват паралелно (като в същото време, ако компютърът разполага с достатъчно ресурси), тя е основно невъзможно в PHP или VBS.

Падащо меню

Нашата пътувал меню - всъщност пътува (от под "капака") умишлено остави пропуски между елементите, за да видите как тя си тръгва. Изненадващо е, че не можем да направи същото гладка изхода за различни периоди от списъците - вероятно се дължи на ниската производителност на компютъра (AMD Athlon 999 MHz).

Достатъчно е очевидно, че красотата и хармонията необходимо да се изброят различни опции в менюто се падна за едно и също време. Това е един дълъг списък от трябва да падне по-висока скорост, по-кратък - при по-ниска скорост. Тя ще изглежда, че тя може да се прилага, както следва:

  1. Задайте общото време "Лекота В", например, 200 милисекунди.
  2. Ако падащия списък на е с височина 20 пиксела, очевидно е, че можем да го придвижи надолу към един пиксел за диапазона от 10 м - и след това в продължение на 200 мс списък ще излезе цяло.
  3. Ако падащия списък на е с височина 40 пиксела, за да остане в същото време, ние трябва да се премести надолу един пиксел в 5 мс.

Ето защо, малко или много се изравнят менюто време лесното е възможно само с помощта на патерици, и все още не е ясно как това ще се работи по-бърз компютър. Но ние трябва да се гледа най-бавно? Алгоритъм (без компютър скорост) е приблизително, както следва:

  1. Задайте общото време спокойно в списъка на: време = 224 (MS).
  2. Определете минималния интервал от време за един цикъл: забавяне = 3 (MS).
  3. Задайте минимална стъпка от списъка за движението: офсет = 1 (пиксели).
  4. Ние всички промени това в зависимост от височината на списъка: 1) увеличаване на времето на забавяне (интервал) е обратно пропорционална на височината и право пропорционално на общия период от време (на височина 224 равно на 1 съотношение); 2) ако височината е по-голяма от 40 пиксела, увеличава пропорционално на минималната височина на стъпката. Постоянно "40" получено емпирично за най-бавен компютър. Изследвания за откриване на точно Pentium 4 процесор 2.53GHz компютър е един и същ номер - 40. В противен случай, таймерите са Хокинг, списъци не се покачват.

Сега изброява повече или по-малко отпуск. За повече или по-малко подобно време. На setinterval.htm страница.

Самата функция, изтъква вложени списъци от менюто, както виждаме, е много проста. Остава само да се започне тя е около линията:

Е, преди да започнете просто се изчисли всичко това maxtop и компенсиране, както и да се сложи в списъка в позиция mintop. Дали точно това, което "предварителен" функция слайд () размер на 40 линии. И всички заедно - setinterval.js файл. Да, и този боклук не лайна няма да работи без свързан файлови menuroll.css стилове.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!