2011-01-14 57 views
0

Hy guys!IE在递归函数上显示脚本错误

我有一个需要时间来执行的递归函数。 IE认为功能就像一个无止境的循环。

我该怎么做才能让IE不显示错误?

Thks guys!

+0

这是IE显示的da错误?此外,功能是什么样子?不,实际上,根据您问题的当前内容,我们无法帮助您。 – 2011-01-14 16:54:33

回答

1

你不能这样做,在大多数浏览器中,如果用户访问一个带有JavaScript的网页,将他的cpu时间过长,从而导致浏览器崩溃,那么这是一种功能。

围绕它的唯一方法,就是性能如此这般快:)

我假设的“错误”是这样的优化代码,否则我的答案是错的: alt text

+0

是的,伙计。正是这个。 – Thiago 2011-01-14 17:00:04

0

的Javascript在你的浏览器中运行一个线程。如果您有某种代码正在运行(递归或其他),并且现在不会对浏览器产生任何影响,浏览器将暂停脚本并询问用户是否要停止代码或继续。如果没有发生,用户将无法重新获得控制权(如果您喜欢长时间运行的代码与UI相同的线程(即网页))运行。这就是为什么ajax调用的结构是这样的:你的代码不会等待(即阻止)结果,而是一个回调函数可以返回结果。

那么你如何在长时间运行的代码中产生?有几种方法(ajax就是一个例子),但最流行的是以某种方式使用setTimeout。不幸的是,解释如何在不知道自己在做什么的情况下使用它并不那么容易。我能给出的任何小例子都是人为的。

因此,对您的问题的严格回答是“将您的代码重写为执行块,例如没有一个块需要很长时间才能执行”。