6

非同期ロードで ExtJS 4+ を使用する場合、次のような警告に慣れているでしょう:

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

この警告の原因となっている JavaScript モジュール (コントローラー、コンポーネントなど) を特定する方法を教えてください。つまり、インクルード モジュールがrequiresリストに同期的にロードされる場所です。

これらの警告を修正する正しい方法は何ですか? これを行う自動化された方法はありますか?

PS 現在これを行う唯一の方法は、警告が発生するデバッグポイントを設定し、どのファイルのどの行が警告の生成につながっているかを追跡することです。

4

3 に答える 3

7

クロムでは、あなたのスタックトレースでは (最近では Firefox もスタックトレースを行うと思いますか?)、モジュールで呼び出しているファイルは通常 (常に?) ext-all ではない最初のファイルです。

Ext.requireものを自動化するために使用されるもの(js-minificationなど)であるため、それ自体を実際に自動化することはできません。

Ext.defineコンポーネントを (またはを使用して) 宣言するときはExt.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';
        }
    }
});

また、パフォーマンスを気にせず、迷子の警告のみを取り除きたい場合 (技術的には狂気です。ローダーの config でエラー メッセージをいじることができます。

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

于 2012-08-13T13:28:23.273 に答える
0

同じ問題がありましたが、今日修正されました。問題は、コードにブレークポイントがなく、ブレークポイントをどこに置くべきかわからなかったため、スタックトレースをさかのぼっても役に立たなかったことです。

そのため、ブラウザーが不平を言っている ext-all-rtl-debug.js ファイルの行に、デバッガー ("debugger;") への呼び出しを追加しました。そのため、スタックトレースを取得して、問題が発生した場所を見つけました。その後、デバッガーステートメントを削除しましたが、すべてが正常に機能しました。

私のコードの問題は、特別なクラスを必要とするストアがあったことです。ストアに「必須」プロパティを追加しましたが、役に立ちませんでした。「requires」プロパティを application.js ファイルに追加する必要がありました。これで問題は解決しました。

于 2015-05-08T09:13:47.317 に答える
0

適切なプログラミング方法として、すべてrequiresのモジュールに構成オプションを含める必要があります。なぜこれをしないのですか?

于 2012-08-13T09:15:56.947 に答える