IE отображает ошибку скрипта в рекурсивной функции - PullRequest
0 голосов
/ 14 января 2011

Привет, ребята!

У меня есть рекурсивная функция, выполнение которой требует времени. IE "думает", что функция похожа на цикл без конца.

Что я должен сделать, чтобы IE не показывал ошибку?

Спасибо, ребята!

Ответы [ 2 ]

1 голос
/ 14 января 2011

Вы не можете, это функциональность в большинстве браузеров, чтобы дать пользователю выход, если он посещает веб-страницу с javascript, который слишком долго связывает его процессор и таким образом убивает браузер.

Единственный способвокруг, это для оптимизации производительности вашего кода, чтобы он шел быстрее:)

Я предполагаю, что «ошибка» выглядит так, иначе мой ответ неверен: alt text

0 голосов
/ 15 января 2011

Javascript в вашем браузере работает в одном потоке. Если у вас запущен какой-то код (рекурсивный или иной), который время от времени не дает браузеру работать, браузер приостанавливает выполнение сценария и спрашивает пользователя, хотят ли они остановить код или продолжить. Если этого не произойдет, у пользователя не будет возможности восстановить контроль (если вам нравится, что ваш долгосрочный код выполняется в том же потоке, что и пользовательский интерфейс, то есть веб-страница). Вот почему вызовы ajax структурированы таким образом, что ваш код не ожидает (то есть блокирует) результат, но вместо этого вызывается функция обратного вызова с результатами.

Итак, как вы получаете длительный кусок кода? Несколько способов (например, ajax), но самым популярным является использование метода setTimeout. К сожалению, не так просто объяснить, как его использовать, не зная точно, что вы делаете. Любые маленькие примеры, которые я мог бы привести, были бы искусственными.

Таким образом, строгим ответом на ваш вопрос является «переписать код в чанки выполнения, такие как если нет ни одного фрагмента, выполнение которого занимает много времени ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...