将Store类扩展为在ExtJS上加载后始终执行函数

时间:2015-01-13 02:03:19

标签: extjs store

我正在开展一个项目,在那里我们被要求"补丁" (他们不想在开发上花费大量时间,因为他们很快将取代系统)在ExtJS 4.1.0下实现的系统。

该系统在非常慢且不稳定的网络连接下使用。因此,有时商店无法获得预期的数据。

作为补丁,我首先想到的两件事是: 1.每次第一次装入商店时,请等待5秒钟再试一次。大多数情况下,页面刷新可以解决商店未加载的问题。

  1. 不知何故,检查检测到加载商店后没有收到任何数据,并尝试再次获取。
  2. 这个补丁应该只执行一次,以避免无限循环或不必要的递归,因为有时可以,存储不能获得任何数据。

    我不喜欢这种解决方案,但是客户要求它。

1 个答案:

答案 0 :(得分:0)

link应该有助于解决您的问题。

其中一张海报建议在overrides.js文件中添加以下内容,该文件加载在ExtJs源代码和应用程​​序代码之间。

Ext.util.Observable.observe(Ext.data.Connection);
Ext.data.Connection.on('requestexception', function(dataconn, response, options){
     if (response.responseText != null) {
        window.document.body.innerHTML = response.responseText;
    }
});

使用此示例,对于任何错误而不是回显示例中的错误,您可以记录错误详细信息以便稍后进行调试并尝试再次加载。我建议在其中添加一些额外的逻辑,这样它只会重试一定次数,否则它会在浏览器窗口打开时无限期地运行,很可能会使浏览器崩溃并给服务器带来额外的负担。

显然问题的根本原因不是代码本身,而是你的慢速连接。我试着解决这个问题,而不是其他问题。