1

強打を使用して、dojo/store/Memory のロードを自動化する dojo ベースのモジュールがあります。それは次のように呼ばれます:

require( [ 'squad_builder/storeBroker!collectionStore' ],
    function( collectionStore )
{ 
    // use store...
} );

最初の require() 呼び出しはストアをロードし、後続の呼び出しはストアをキャッシュからロードします。

これはうまく機能しますが、require の内部キャッシュを無効にする方法がわからないため、次のリクエストでストアに新しいデータをロードさせることができます。

これを行うためにrequire()に組み込まれているものはありますか、それとも内部の仕組みをいじる必要がありますか(もしそうなら、どこで?)

編集

ドキュメントでは、次のように言及されています。

注: Dojo ローダーには、モジュール値を未定義にする非標準関数 require.undef が含まれています。

しかし、そのメソッドは、呼び出したときに未定義です。Firebug で require() を見ると、次のようになります。

for( i in require )
{
    console.log( 'require', i, require[ i ] );
}

require.module にはdef()メソッドがありますが、メソッドはありませんundef()

編集 2

Require.cachedojo および dijit モジュールのみが含まれているようです。カスタム名前空間モジュールはどこにキャッシュされますか?

4

1 に答える 1

1

道場サイトによると、この機能は「ビルドされた」道場ファイルに自動的に含まれません。圧縮されていない dojo.js を見ると、そこにあることがわかります。出典: http://dojotoolkit.org/reference-guide/1.9/loader/amd.html

次の表に、ローダー内で利用されるオプションのリストを示します。最初の列は、ローダー内で定義されたオプション/機能です。2 番目のオプションは、これが (has.add() を介して) 検出された機能であるか、それとも単なるオプションとそのデフォルト値であるかです。「ビルドされていない」ソースでは、すべての機能とオプションが利用可能です。ローダーがビルドされている場合、これらの機能の一部が staticHasFeatures として設定されており、構成できなくなっている可能性があります。

また、ここには、go djconfig http://dojo-toolkit.33424.n3.nabble.com/require-undef-td3990559.htmlという行を追加することで、機能を元に戻すことができる可能性があると書かれています。

dojoConfig = { has : { "dojo-undef-api": true } }

于 2013-08-19T18:00:43.120 に答える