1

おそらく「金曜日の 5:00 以降で、家に帰りたい」効果ですが、この問題に困惑しています。それぞれを呼び出す再帰的な反復子メソッドがあります。

function canIterate(obj) {
   return (obj && (typeof obj === 'object' || Array.isArray(obj)));
}

function each(obj, onSuccess, recursive) {
    if (canIterate(obj)) {
        Object.keys(obj).forEach(function(key) {
            var val = obj[key];
            if (onSuccess && val && key) {
                var quit = onSuccess(val, key);
                if (false === quit) {
                    return false;
                }
            }
            if (true === recursive) {
                each(val, onSuccess, true);
            }
        });
    }
}

これは、大規模なデータセットでは非常に遅くなります (以下で説明します)。@raganwald がここで説明しているように、トランポリンは問題の解決策です。. 私の質問は、この再帰関数をリファクタリングしてトランポリン手法を利用するにはどうすればよいですか?

したがって、ツリーの現在の状態を要求するポーリング メカニズムがあります。この場合は、次のようなロケーション ツリーです。

Hospital Campus Main
    Main Building
        Radiology Department
             Lab 1
             Lab 2
             MRI Lab
                 Machine Cabinets
                     Spare Parts Shelf

ツリーは、場所に属するもののグリッドでレンダリングされます。グリッド内の場所を持つ行ごとに、ルートをこの行の場所に設定してツリーをレンダリングする必要があります。したがって、次の場合:

Part   | Location | Tree
widget   MRI Lab    MRI Lab > Machine Cabinets > Spare Parts Shelf

したがって、これらの一部またはすべてがサーバー側で処理される可能性があることは気にしないでください。後でデータ フェッチのパフォーマンスを最適化します。

トランポリンまたはCPS スタイルを使用するように各メソッドを書き直す効率的な方法はありますか?

4

0 に答える 0