【问题标题】:Using Firebug with Knockout causes "unresponsive script error"将 Firebug 与 Knockout 一起使用会导致“无响应的脚本错误”
【发布时间】:2013-05-03 19:53:51
【问题描述】:

我正在使用 Firefox 构建一个带有 Knockout 的屏幕,并在页面上打开 Firebug。

在一个非常特殊的情况下,我从 Firefox 收到一个无响应的脚本错误,经过大量测试后,我将其范围缩小到仅在打开 Firebug 的这种特定情况下发生。当它关闭时,我没有收到错误。

在多次通过 Knockout 调试 js 并出现此错误后,我发现第一个“无响应脚本”弹出窗口发生在处理结束注释 (1807) 附近

setDomNodeChildren: function(node, childNodes) {
                        if (!isStartComment(node))
                            ko.utils.setDomNodeChildren(node, childNodes);
                        else {
                            ko.virtualElements.emptyNode(node);
                            var endCommentNode = node.nextSibling; // Must be the next sibling, as we just emptied the children
                            for (var i = 0, j = childNodes.length; i < j; i++)
                                endCommentNode.parentNode.insertBefore(childNodes[i], endCommentNode);
                        }
                    },

或在 1728 附近,也接近关于结束评论的工作

function isEndComment(node) {
                    return (node.nodeType == 8) && (commentNodesHaveTextProperty ? node.text : node.nodeValue).match(endCommentRegex);
                }

但它每次都在不同的位置,如果我在无响应的脚本弹出窗口上单击“继续”,我可以继续前进。

在没有 Firebug 的情况下运行不会出错,在 Chrome 中使用或不使用开发人员工具运行都不会出错。

我不知道该尝试什么或发布什么代码来帮助解决我的问题,因为我使用 Firefox 和 Firebug 使用 Knockout 制作了许多屏幕,这是我第一次遇到问题像这样。

但我非常感谢有关如何让萤火虫停止导致此问题的任何提示或建议。 (虽然也许我只需要迁移到 Chrome...)

【问题讨论】:

    标签: firefox knockout.js firebug


    【解决方案1】:

    无响应的脚本是指脚本需要很长时间并且附加了火灾错误,它有点慢,导致成功和超时之间的区别,您可以忽略错误,错误位于不同位置,因为它可以运行不同直到超时为止的代码量。

    但是您的脚本即将超时,因此请检查是否可以优化它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 2013-11-11
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多