0

ですから、Ext.Ajax.request()で何かが足りないのではないかと思います。

だから私は次のことをするコードを持っています:

Ext.Ajax.request({
   url : 'myurl',
   success : function(){
     alert('success 1');   
   },
   callback : function(){
     alert('callback');
   }

});

その後、次のような別のajax呼び出しを行います。

Ext.Ajax.request({
   url : 'myurl',
   success : function(){
     alert('success 2');   
   }

});

コールバック関数を定義しない場合でも、最初の呼び出しからの古い関数が設定されたままになります。したがって、実行時に、前に定義した古いコールバック関数を呼び出します。だから私はリスナーを追加します

Ext.Ajax.on('beforerequest', function(c, o, e){
     //The options has all my previous options
});

そこで、ここにブレークポイントを設定してオプションを確認しました。2回目の呼び出しまたはその後のその他のajax呼び出しで、コールバックやその他のオプションをemptyFunction()またはその他のリクエスト構成でオーバーライドしない場合は、前の値がそのまま残ります。したがって、2回目の呼び出しで成功関数を再定義しなかった場合、最初の呼び出しの成功関数は引き続き存在します。次の呼び出しで、以前のすべてのオプションをクリアする方法はありますか?新しい呼び出しごとにそれらをクリアすることができました。しかし、呼び出しが無関係である場合、最後の呼び出しからのオプションが残る理由がわかりません。

4

1 に答える 1

2

ドキュメントに記載されているように、はExt.Ajaxシングルトンです。

そのコードoptionを見ると、構成が呼び出しの間に残ることがわかります。

ですから、あなたはそれを間違った方法で使用していると言うのが怖いです。理想的には、各呼び出しで成功または失敗したときに何が起こるかを定義する必要があります。

これは機能するように見えますが、次のようになります。

var iAjax = new Ext.data.Connection();
iAjax.request({
    // unique config here.
});
于 2013-02-04T15:31:51.947 に答える