Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   IE8 предупреждение о том, что скрипт выполняется долго. (https://javascript.ru/forum/css-html-internet-explorer/23108-ie8-preduprezhdenie-o-tom-chto-skript-vypolnyaetsya-dolgo.html)

kidar2 12.11.2011 10:27

IE8 предупреждение о том, что скрипт выполняется долго.
 
Добрый день.

Есть такой простой код:

for (var i = 0; i < 5000000; i++){
}

Его выполнение занимает около секунды, однако браузер IE8 (и ниже) выдаёт предупреждение о том, что он выполняется долго и предлагает его приостановить.
Есть, конечно, вариант через setTimout продолжать выполнение скрипта (тогда сообщения не будет), но хотелось бы какой-то более правильный способ.

Kolyaj 12.11.2011 10:30

Более правильный способ -- делать скрипты, которые не выполняются около секунды. Например, разделить на несколько тиков через setTimeout. Или переписать на более быструю версию.

kidar2 12.11.2011 10:39

Выполнение скрипта около секунды это вполне нормально.
И потом тут дело не во времени, а в количестве выполняемых подряд операторов - в IE это число равно 5млн/

Kolyaj 12.11.2011 10:41

Цитата:

Сообщение от kidar2
Выполнение скрипта около секунды это вполне нормально.

Подвисание браузера на секунду -- это ненормально.

kidar2 12.11.2011 11:16

В RIA нормально.

trikadin 12.11.2011 15:08

kidar2, ненормально. В течении всего этого времени ваш браузер не будет реагировать ни на какие запросы. Причём ладно - ваш, но пользователи-то причём?

Pavel M. 14.11.2011 00:18

может быть помогут web workers
http://y3x.ru/2011/01/webworkers/
?

kidar2 14.11.2011 12:22

Цитата:

Сообщение от Pavel M. (Сообщение 136310)
может быть помогут web workers
http://y3x.ru/2011/01/webworkers/
?

Их нету даже в IE9, не то чтобы в IE8.

kidar2 14.11.2011 12:23

Цитата:

Сообщение от trikadin (Сообщение 136038)
kidar2, ненормально. В течении всего этого времени ваш браузер не будет реагировать ни на какие запросы. Причём ладно - ваш, но пользователи-то причём?

Ну пусть не за секунду выполняется скрипт, а за 0,1... кол-во операций всё равно таким же будет.

Pavel M. 14.11.2011 13:09

Цитата:

Сообщение от kidar2
Их нету даже в IE9, не то чтобы в IE8.

если в ie8 нет, например, поддержки css border-radius, то по вашему это никто не использует?

где нет поддержки workers - можно использовать setTimeout и разбивать на куски долгую задачу


Часовой пояс GMT +3, время: 11:43.