さて、この質問は古くはありますが、おそらくこれを行うためのより柔軟な方法があります。 Ext.Ajaxがシングルトンであることを認識することは本当に重要です。つまり、すでに独自のプリインスタンス化されたクラスです。シングルトンを「拡張」することはあまり意味がなく、別の機能が不必要に混乱したり、後で制限されたりする可能性があります。
あなたはこのようなあなた自身の特別なAjaxリクエスト機能を追加することができます。だから今、あなたがあなたの繰り返しAjaxリクエストを変更することができます
Ext.Ajax.dateRequest = function(myObj){
// set the pre-configured parameters here
myObj.url = 'ajax.php';
myObj.params = { action: 'getDate'};
myObj.method = 'GET';
// call the original request function with the modified config object
this.request(myObj);
};
:
Ext.Ajax.dateRequest({
success: yourSuccessFunction
,failure: yourFailureFunction
});
これまでの利益はあなたが簡単にできることです事前設定されたパラメータを "dateRequest"関数に追加し、何も書き換えずに追加パラメータを各Ajaxリクエストに追加することができます(別のタイムアウトなど)。
EDIT:Yikes!私はもともとExt.Ajaxを "クローンする"と思っていたソリューションを投稿しましたが、まだシングルトンを単にオーバーライドしています。
これは数年前に「サキ」(Ext guru)によって引用されたものです。彼は通常のオブジェクト/配列のために書いたクローン機能を参照することです:
クローン機能は、クラスまたはインスタンス化 内線オブジェクトのクローンを作成することを意図していない場合です。これらのインストールではほぼ不可能です。 イベントハンドラはほとんど常にクローニングするので、間違いなく という結果につながります。
シングルトンは「インスタンス化されたExtオブジェクト」であり、したがって容易に拡張またはクローン化できません。 Ext.Ajaxを直接混乱させたくない場合は、すでに述べたように関数を作成することができます。ここではもう少し柔軟な形式である:
function dateRequest(myObj){
myObj.url = 'ajax.php';
myObj.params = { action: 'getDate'};
myObj.method = 'GET';
return Ext.Ajax.request(myObj);
}
その後dateRequest({success: successFunc, failure: failFunc})
でそれを呼び出します。
'success' /' failure'または単に 'callback'を使うべきですか? – fastcodejava
良い答え、 'MyAjaxRequest'を呼び出す方法。 – javaguy
これはクラスです:yourVariable = new MyAjaxRequest({}); – bensiu