发现JS错误 - “停止运行此脚本?”

时间:2009-06-19 14:28:15

标签: asp.net javascript ajax debugging

我正在开发一个与ajax,回调,javascript等相当复杂的ASP.NET网页。我间歇性地遇到这个错误:

  

停止运行此脚本?此页面上的脚本导致IE运行缓慢...

非常感谢任何找到罪魁祸首的帮助。

4 个答案:

答案 0 :(得分:3)

如果您有无限循环或未返回的同步ajax调用,则可能会发生这种情况。我建议您使用Firefox和Firebug,Fiddler或IE开发工具来调试问题。

答案 1 :(得分:3)

我建议阅读以下文章:

http://www.julienlecomte.net/blog/2007/10/28/

简而言之,当您从单个javascript入口点执行的代码运行很长时间时,会出现您描述的错误消息。如果您可以将长处理拆分为多个部分并使用setTimeout()顺序调用它们,则不会再收到错误消息。

从文章中,这是一个长期运行的javascript例程的好模板:

function doSomething (callbackFn [, additional arguments]) {
    // Initialize a few things here...
    (function () {
        // Do a little bit of work here...
        if (termination condition) {
            // We are done
            callbackFn();
        } else {
            // Process next chunk
            setTimeout(arguments.callee, 0);
        }
    })();
}

答案 2 :(得分:2)

尝试调试javascript时,以下某些功能非常有用:

  • 安装firebug - 它能够分析您的应用程序,这可以将您带到脚本中可能出现减速的地方
  • 如有疑问,请使用警告声明。在你的代码中加入它们并使用它们找出你的javascript速度慢的地方。
  • 看一下这个问题,以便在javascript debugging tips
  • 上获得更多how to debug javascript in IE或此问题
  • 在try / catch块中包装您的AJAX调用 - 文章Debugging AJAX in Production,描述了该技术

答案 3 :(得分:1)

我发现在IE中弹出的主要原因是任何其他浏览器都是字符串操作。如果你连接很多字符串,随着字符串的增长,IE性能会受到很大影响。

但正如许多人所说,使用开发工具有望引导您进入问题区域,如果需要,我们可以从那里提供帮助。