2012-02-24 63 views
0

我正在擴展HttpProxy並預加載了24個存儲。在我添加第二十四個應用程序被加載之後發生錯誤,我試着僅僅根據請求加載它,並且因爲調用laod而發生錯誤。 ExtJS專家請幫忙!我使用ExtJS的2.3ExtJS 2.3 - 未捕獲的RangeError:超出最大調用堆棧大小

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 

我的小extention代碼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); 
      } 

     } 
    } 
}); 

回答

0

loadexception異常處理程序拋出同樣的異常else. So if somehow data.errorCode is not 1`它會遞歸地調用它一次又一次。因此調用堆棧大小超過了錯誤。

解決方法:可以執行以下步驟來防止它,

  1. 在別的。如果你火loadexception確保您更改或處理響應,使其不賺不火loadexception阻止
  2. data.errorCode != 1
  3. 通過處理所有事情的其他異常。
+0

謝謝Shiplu!出於某種原因,我認爲事件的宣傳將停止,我需要再次解散,因爲除了延期以外,我還會在某些情況下處理事件。謝謝! – user979051 2012-02-24 01:10:05

相關問題