1

私は現在、自家製のインターフェイスライブラリで作成されたWebアプリを標準のExtJSMVCアプリケーションに変換するために取り組んでいます。ページの起動時に待ち時間が長くなるAjaxリクエストを除いて、すべてが正常に機能します。実際、私が呼び出すファイルは以前とそれほど変わりませんが、応答を返すために以前より3〜6秒長く待たなければならない場合があります。

調査の範囲を狭めるために、静的データ(単純なjson文字列)を返すようにコードを変更し、データベースの問題のオプションを排除しました。さらに、Google Chrome([ネットワーク]パネル)で[Replay XHR]を使用すると、ほぼ瞬時に応答が返されることに気付きました。

このトピックについて支援するのは難しいと思いますが、誰かがすでにこの種の問題に遭遇していて、どこで調査すべきかについていくつかのアドバイスを共有できることを願っています。

観察

  • レイテンシでソートされたリクエスト(ギャップは約500ms):

    ここに画像の説明を入力してください

  • 開始時刻でソートされたリクエスト:

    ここに画像の説明を入力してください

4

1 に答える 1

0

私は次々に店をロードしようとしました。そうすることで、すべての店舗の読み込み時間を約0.5秒に短縮しました。この問題がすべてのブラウザで発生するかどうかはわかりません。いつか確認します。autoLoad:trueパッチは次のとおりです(すべてのストアに削除することを忘れないでください):

// filters stores to load on startup
// store.self.getName() returns "AppName.store.MyStore"

var stores = Ext.StoreManager.filterBy(function (store) {
    return Ext.Array.indexOf(
        ['Store1', 'Store3', 'Store5'], 
        store.self.getName().split('.').pop()
    ) !== -1;
});

// loads one store after another

(function () {
    var callee = arguments.callee,
        store = stores.getAt(0);
    store.load({
        scope: this,
        callback: function () {
            stores.remove(store);
            if (stores.getCount()) {
                callee.call(this);
            } else {
                // all stores are now loaded
            }
        }
    });
}).call(this);
于 2013-02-11T13:36:10.317 に答える