通常のExt.ajax呼び出しに対するExt.directの主な利点は何ですか?いつ使用することを検討する必要がありますか?
1 に答える
実際、それはあなたのバックエンド、あなたが何をしたいのか、そしてあなたの状況に何が合うかによります。あなたが提示した質問はかなり曖昧なので、私の答えはあなたのためだけに多くのことをすることができます。できる最善のことは、Ext.DirectとExt.AjaxのAPIページを確認することです。Ext.Directは(前回見たとき).Ajaxと同様に非常によく文書化されていましたが、.Ajaxにはそれほど多くはありません。
Ext.Direct-私は最後の仕事でこれを実装し始めました、そして全体として、それは立ち上がって実行するためのPITAでした、しかしその後の利点はかなりきちんとしていました。Ext.Directを使用すると、サーバーを呼び出して、JSONオブジェクトの形式でExtに渡すAPIとして定義されているメソッドを実行できます。これらのメソッドは、アプリケーションに公開されます。
// Server-side
class MyDirectRouter
{
public function GetNames(){
// Get some names from the database
return $names;
}
}
// Client-side - also, not sure on exact configs here so
// you should do your homework
var store = Ext.create('Ext.data.DirectStore', {
// blah blah configs
proxy: {
url: '/my/direct/router/GetNames',
type: 'direct'
});
ストアはサーバーに上記のメソッドを呼び出すように要求し、サーバーはストアに応答を返します。あなたはいくつかのきちんとしたことをすることができます、そしてすぐに利用可能で公開されたAPIを持つことはあなたにあなたのカスタムルート、コントローラーなどをセットアップすることの多くの頭痛を節約します。
Ext.Ajax 名前はそれをすべて言います:AJAX。サーバー上のページを呼び出し、応答を返します。ここでの主な違いは、これがメソッドではなくページを呼び出すことです。ページはさまざまなことを実行できますが(もちろん、メソッドも実行できます)、ページは出力のフォーマット(JSON、XMLなど)を担当します。サーバー側の直接メソッドは最終的に出力もフォーマットしますが、通常、メソッドの呼び出しと出力フォーマットを処理するルーターが作成されます。Ext.Ajaxは、AJAXリクエストを処理するページをもう一方の端に配置する以外にセットアップを実質的に必要としないため、処理がはるかに簡単です。一方、Directは、ルーティング、API公開などを処理するためにいくつかのバックエンドクラスを必要とします。プラグインがあります。さまざまなフレームワーク(Kohana、CodeIgnitor、おそらくWordPressなど)の場合、独自のフレームワークをローリングすることはおそらく難しいことではありません。公平を期すために、Ext.Ajaxの例:
// Server-side - code of /ajax.php
echo(json_encode(array(
'DATA' => array(
array('id' => 3, 'name' => 'john'),
array('id' => 4, 'name' => 'Jill')
)
));
// Client-side
var store = Ext.create('Ext.data.Store', {
fields: ['id', 'name'], // You should really use a model
proxy: {
type: 'ajax',
url: '/ajax.php',
reader: {
type: 'json',
root: 'DATA'
}
}
});
これである程度の見通しが得られることを願っていますが、実際には、それぞれがどのように機能するかを理解し、自分と自分の状況に最適なソリューションを適用する必要があります。両方のExtAPIページを読むことから始めるのが良いでしょう。また、サンプルとデモのページには両方の例が掲載されています。