ExtJS 2.3 - 未捕获 RangeError:超出最大调用堆栈大小

发布于 2025-01-08 22:20:39 字数 795 浏览 0 评论 0原文

我正在扩展 HttpProxy 并预加载 24 个商店。在我添加要加载的第 24 个商店后,发生错误,我尝试仅根据请求加载它,并且在调用 laod 时发生错误。请ExtJS高手帮忙!我正在使用 ExtJS 2.3

Uncaught RangeError: Maximum call stack size exceeded
Ext.override.listeners.loadexception extensions.js:12
Ext.util.Event.fire ext-all-debug.js:1521
Ext.util.Observable.fireEvent

我在 extension.js 中的小扩展代码:

Ext.override(Ext.data.HttpProxy,{
    listeners: {
        'loadexception' : function(proxy, options, response){
            var data = eval("(" + response.responseText + ")");
            if (data.errorCode == "1") { //session expired or auth error
                location.reload(true);
            } else {
                this.fireEvent("loadexception",proxy,options,response);
            }

        }
    }
});

I am extending HttpProxy and pre-loading 24 Stores. The error occurs after I add the 24th Store to be loaded, I've tried loading it on request only and the error occurs as it is called to laod. ExtJS experts please help! I'm using ExtJS 2.3

Uncaught RangeError: Maximum call stack size exceeded
Ext.override.listeners.loadexception extensions.js:12
Ext.util.Event.fire ext-all-debug.js:1521
Ext.util.Observable.fireEvent

My little extention code in extension.js:

Ext.override(Ext.data.HttpProxy,{
    listeners: {
        'loadexception' : function(proxy, options, response){
            var data = eval("(" + response.responseText + ")");
            if (data.errorCode == "1") { //session expired or auth error
                location.reload(true);
            } else {
                this.fireEvent("loadexception",proxy,options,response);
            }

        }
    }
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

美人迟暮 2025-01-15 22:20:39

您的 loadException 异常处理程序在 else中抛出相同的异常
因此,如果出于某种原因
data.errorCode不是1`,它会一次又一次地递归调用它。因此,调用堆栈大小超出错误。

解决方案:您可以执行以下操作来防止它,

  1. 不要在 else 块中触发 loadException
  2. 如果您触发 loadException,请确保更改或处理响应,以便它不会make data.errorCode != 1
  3. 通过一些其他处理一切的异常。

Your loadexception Exception handler is throwing the same exception in else block.
So if somehow
data.errorCodeis not1` it'll recursively call it again and again. Hence the call stack size exceeding error.

Solution: You can do the following to prevent it,

  1. Do not fire loadexception in the else block
  2. If you fire loadexception make sure you change or process the response so that it does not make data.errorCode != 1
  3. Through some other exception which handles everything.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文