extjs - 如何解决 ExtJS "Synchronously loading"警告

标签 extjs extjs4 extjs4.1 extjs-mvc

当 ExtJS 4+ 与 asynchronous loading 一起使用时人们会熟悉这种警告:

[Ext.Loader] Synchronously loading 'MY.particular.module';
consider adding Ext.require('MY.particular.module') above Ext.onReady

如何识别导致此警告的 JavaScript 模块( Controller 、组件等)? IE。 requires 中同步加载include模块的地方列表。

纠正这些警告的正确方法是什么?是否存在自动执行此操作的方法?

附言现在唯一的方法是设置一个引发警告的调试点,并追溯到导致生成警告的文件中的哪一行。

最佳答案

在 chrome 中,在您的堆栈跟踪中,(我认为 Firefox 现在也可以进行堆栈跟踪?)在模块中调用的文件通常(总是?)第一个不是 ext-all 的文件。
Ext.require是用来自动化的东西(例如js-minification),所以你不能真正自动化它本身。

当您声明一个组件(使用 Ext.defineExt.create )时,您应该指定 Ext 将要用于组件的组件的模块 Ext.require (好吧,如果你想至少摆脱这个警告)

定制 您正在使用的组件应该或多或少遵循相同的想法:

Ext.define('My.app.Panel', {
    extend: 'Ext.panel.Panel', // 
    requires: [
        'My.app.PanelPart2', //Hey! warning is gone!
        'My.app.PanelPart3'
    ]

    constructor: function (config) {
        this.callParent(arguments); 
        //...
    },

    statics: {
        method: function () {
            return 'abc';
        }
    }
});

而且,如果您不关心性能,而只想摆脱杂散警告(从技术上讲是精神错乱,您可以在加载程序配置中清除错误消息。
Ext.loader.setConfig({
  enabled: true,
  paths: {
      'My': 'my_own_path'
  },
  onError:function(){}//or custom handler? :D

请参阅 mitchsimeons 的回答:http://www.sencha.com/forum/showthread.php?178888-Tons-of-Synchronously-Loading-Warning-Messages

以及一篇关于为什么需要的博客文章:
http://www.sencha.com/blog/using-ext-loader-for-your-application

关于extjs - 如何解决 ExtJS "Synchronously loading"警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11930992/

相关文章:

java - 在 servlet 中检索 jsonData

javascript - ExtJS提交表单下载文件

Extjs 4.1 日历 - 工具提示第一次不显示

javascript - 将文本字段更改为文本区域字段

css - SASS + 循环相邻的选择器并添加下降的 z-indexes

ExtJS findExact() 和自定义验证器错误

javascript - 使用 filterBy() 应用过滤器时从 ExtJs 存储中清除过滤器的最快方法

javascript - Extjs Accordion 标题 - 将折叠按钮移至标题标题左侧

javascript - ExtJs 4,有没有办法找到控件? (不是 "id")