6

私のWebサイトは、ExtJS4.1フレームワークとASP.NetMVCv3を使用して作成されています。新しいフレームがレンダリングされると、JSON形式でデータを取得するための19の個別のAJAXリクエストがあります。すべてのリクエストはよく知られており、Ext.Ajax.request()によって行われます。例:

Ext.Ajax.request({
    url: getOrderLink,
    method: "GET",
    params: { recId: orderRecId },
    headers: {
        'Accept': 'application/json'
    },
    success: function (response) {
        var order = Ext.decode(response.responseText);
        ...
    }
});

場合によっては、ext-all.jsにエラーがあります

onStateChange : function(request) {
    if (request.xhr.readyState == 4) {
        this.clearTimeout(request);
        this.onComplete(request);
        this.cleanup(request);
    }
},

ここで、requestにはプロパティxhrがないため、request.xhr.readyStateは例外「Undefinedのプロパティ'readState'を読み取れません」をスローします。このエラーはすべてのリクエストに表示されるわけではなく、サイトの作業には影響しません(レスポンスは正常に取得されます)。このエラーがまったく表示されない場合があります。すべてのリクエストのタイムアウトはデフォルトで30秒に設定されており、それぞれ約1.5〜2秒かかります。私はGoogleChrome21を使用しています。なぜそれが起こっているのか教えてください。

4

1 に答える 1

2

この問題は、ブレークポイントまたは「デバッガー」がある場合にのみ発生するようです。AJAXに関連するすべての行。私にとって、それはChromeで起こりました、まだ他のブラウザを試していません。

私の場合、以下のコード例のように、ストアのロードイベントハンドラーにブレークポイントを設定したときに発生しました。

ただし、フレームワーク自体のExtonStateChange関数内にブレークポイントを設定するとエラーが発生します。

ブレークポイントと呼び出しを無効にするとdebugger;エラーが削除される場合は、無視しても問題ありません。

ExtJSフォーラムにも同様のスレッドがあります。Senchaは修正を追加するかもしれません。

Ext.define('MyApp.controller.MyController', {
    extend: 'Ext.app.Controller',

    stores: ['Projects'],

    init: function () {
        this.getProjectsStore().addListener(
            "load",
            this.onProjectsStoreLoaded,
            this
        );
    },

    onProjectsStoreLoaded: function () {
        console.log('MyController: onProjectsStoreLoaded');

        debugger; // <- this causes the errors to appear in the console

        SomeOtherThingsIWantedToDebug();
    }
}
于 2012-12-03T22:01:42.087 に答える