循环对于IE7 / 8来说太慢了

时间:2011-02-23 18:16:57

标签: javascript internet-explorer while-loop

我有一个需要在所有浏览器中运行的循环执行。

在chrome / ff等中

执行运行得很快。在IE中它很慢并且最终发出一个提示,说脚本运行缓慢(不好)。

有关如何绕过这样的事情的任何想法?我大多只需要摆脱7/8的IE提示

**编辑**

这是代码:

if(this.handicap()) {
    while(this.hasGraphChanged()) {
        this.gravity(this.separate());
    }
}

这是一个非常大的项目,所以我不会列出所有代码,而是会快速解释。

this.handicap:如果浏览器是IE7 / 8,则返回true this.hasChanged:返回true / false,具体取决于绘制更新后是否有更改 this.gravity:基于p1(数组)处理绘制算法

2 个答案:

答案 0 :(得分:2)

您可以使用一些异步迭代技术而不是循环。观看Pedro Teixeira的Asynchronous Iteration Patterns作为一个很好的介绍。它使用Node.js,但您可以在浏览器中使用相同的模式。

答案 1 :(得分:0)

循环到底是做什么的?迭代次数是否确定?如果这是导致浏览器挂起的问题,您可能需要考虑javascript worker-threads https://developer.mozilla.org/En/Using_web_workers(虽然我不确定哪些浏览器目前支持此功能)。