| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Постоянно работающие функции |
| Автор: GIK 8.6.2005, 09:43 | ||
| Как сделать так чтобы функции вызывали друг друга. Ситуация следующая: Имеютя два поля для ввода чисел, через оапределенное кол-во времени первое поле увеличивается на значение введенное во втором поле, и так до максимального значения. Как только первое поле получит максимальное значение, оно начнет уменьшатся до значения введенное изночально в первом поле. ЕЩЕ не знаю как реализовать вызов функциии f1.
|
| Автор: Sardar 11.6.2005, 20:03 | ||
| GIK то что ты написал явно JS не являеться, тем более столько синтаксических и логических ошибок.... О теме: хоть JS как бы являеться мультизадачным языком, в браузере он работает в одном процессе. Другими словами только один код может исполняться в один момент времени. Если ты в какой функции ушёл в бесконечный цикл, то бродилка просто присядет "на попа" и через 30 секунд попросит юзера остановить скрипт. Избегаеться это простым правилом - никаких бесконечных циклов, всё что хотим выполнить циклически, ставим на setInterval, функция будет работать точно по таймеру пока таймер не остановить. Смысла твоего кода я не понял, также не понял что есть "максимальное значение". Будем считать что максимальное это машинный предел, тогда:
P.S. Не хилыми JS числами ворочает |
| Автор: GIK 15.6.2005, 09:23 |
| Спасибо за долгожданный ответ. Я уж думал что меня забыли. Чесно говоря я несовсем все понял в Вашем листинге (не многое еще знаю), но хочу поделится своим логическим мышлением в своем. По моему мнению, когда происходит анализ if (n1<=100) и значение поля num1 получает(оставляяет) свое значение + значение поля num2, функция f1 вызывается через некоторое время (за это время, по моему мнению, ничего не происходит, т.е. дальнейшая обработка функции как бы останавливается После вызова, значение поля num1 увеличилось и соответственно n1 получил новое значение(var n1=(obj.num1.value)*1), которое еще раз сравнивается в if (n1<=100). Как только n1 станет больше 100, произойдет дальнейшая "обработка" функции, т.е. if (n>100), (число больше 100, есть максимальное число)после чего вызывается вторая функция, которая уменьшает значение поля num1 на тоже число, на которое оно увеливалось,т.е. на значение поля num2 . (получается вызовов функции столько же, сколько у первой) (Единственное немог разобратся как осуществить вызов первой функции по достижении минимального числа "k" которое я зафиксировал в первой функции var k=(obj.num1.value)*1 ) Очень интересующий вопрос: Может ли быть такое, чтобы функция приостонавливала свои действия, перед тем как произойдет повторный вызов. Еще раз спасибо что откликнулись. |