setTimeout в браузере IE и Opera
Здравствуйте.
Не знаю, в тот ли раздел задаю вопрос, поэтому сразу извиняюсь. Был написан скрипт, который по-разному работал на в браузере IE и Opera. Для диагностики проблемы был написан простенький скрипт, который приведён ниже: <html> <head> <script> time_int = 1 time_array = new Array() function get_time() { var wdata = new Date() return wdata.getMilliseconds() + (wdata.getSeconds() * 1000) } time_start = get_time() t1 = setTimeout(start, time_int) function start() { time_end = get_time() delta = time_end - time_start time_array[time_array.length] = delta if (time_array.length != 100) { time_start = get_time() t2 = setTimeout(start, time_int) } else { print_array() } } function print_array() { st = "" for (i = 0; i < 100; i++) { st = st + time_array[i] + " " } alert(st) } </script> </head> <body> </body> </html> Суть следующая: берётся отметка времени, запускается функция setTimeout с заданным интервалом, снова берётся отметка времени, вычисляется разница времён. Так делается 100 раз. Ожидалось что эти разности времён примерно будут равны заданному интервалу. Результат, который был получен в Опере: от 0 до 4, куча единиц. Результат, который был получен в IE: от 8 до 21, в основном числа около 15. Далее time_int увеличивал. В Опере всегда всё хорошо, а IE вплоть где-то до 25 показывал не то что хочеться. Вопросы такие: 1) С чем это связано? IE тормоз, JS в IE тормозит, функция setTimeout в IE как-то по-другому работает или что ? 2) Мне необходимо некоторую функцию запускать каждые допустим 5 милисекунд. Как это можно сделать? (кроме как через setTimeout) Благодарю. |
|
спасибо
|
Часовой пояс GMT +3, время: 02:20. |