【问题标题】:Firefox with opened firebug console throws too much recursion using sammy.js and knockout.js带有打开的 firebug 控制台的 Firefox 使用 sammy.js 和 knockout.js 会引发过多的递归
【发布时间】:2013-02-08 02:53:09
【问题描述】:

在上次更新 firefox 之后(我假设)我遇到了 firebug 控制台的问题。在我的应用程序中,当我将 app.refresh() 与设置 observable 结合使用时,会抛出“太多递归”并且 Firefox 没有响应。当我关闭萤火虫控制台时,一切正常。

在我的视图模型中,我有:

self.firstStep = ko.observable();

var app = Sammy(function () {
    this.before({ only: { verb: 'get', path: URL.FirstStep } }, function (context) {
        console.log("before");
    });

    this.get(URL.FirstStep, function () {
        self.firstStep(new firstWindow());
        console.log("get");
    });
});

self.LoadData = function () {
    $.ajax({
        //...
        success: function (data) {
            //here is commented out because of debuging the problem
        },
        complete: function () {
            app.refresh();
        }
    });
};

app.run();
self.LoadData();

进入控制台记录一次,之前记录两次。当我注释掉self.firstStep(new firstWindow()) 时,get 也会被触发两次。 在 chrome 中一切正常。帮助真的很感激。
编辑:@Mörre
当我修改代码时:

this.get(URL.FirstStep, function() {
  self.firstStep = ko.observable();
  self.firtStep(new firstWindow());
  console.log("get");
});

它正在工作。

【问题讨论】:

  • 当您关闭 Firebug 时,您很可能仍然遇到此问题,但您没有注意到它。我自己也有一些,它们总是你的代码中的错误。例如,我从另一个调用第一个销毁函数的销毁函数调用销毁函数 - 无限循环。
  • 也许你是对的,但整个页面正在加载并且功能运行良好。当我打开控制台页面崩溃。 Chrome 在控制台打开的情况下工作,看不到任何错误。
  • 那又怎样——当我忽略错误时,我的页面也能正常工作(在调试过程中几个月后才知道该错误,我猜现在就像你一样),我仍然打赌这是你的代码中的错误。修复它,您将受益,除非您只关心“只想让它工作而不关心错误”。抱歉,我不会帮助解决实际问题 - 现在必须调试我自己的代码,只是想说我说的话:)
  • 我不是说我不会修复它。我仍在尝试这样做。无论如何谢谢;]
  • 我不得不重新启动我的电脑,仍然不知道是什么导致了问题。谢谢

标签: javascript firefox knockout.js firebug sammy.js


【解决方案1】:

如果您不需要使用“脚本”面板调试 JavaScript,请禁用“脚本”面板为我解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    相关资源
    最近更新 更多